{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true,
    "hide_input": false
   },
   "outputs": [],
   "source": [
    "from preamble import *\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Model Evaluation and Improvement"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set score: 0.88\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import make_blobs\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "# create a synthetic dataset\n",
    "X, y = make_blobs(random_state=0)\n",
    "# split data and labels into a training and a test set\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)\n",
    "# instantiate a model and fit it to the training set\n",
    "logreg = LogisticRegression().fit(X_train, y_train)\n",
    "# evaluate the model on the test set\n",
    "print(\"Test set score: {:.2f}\".format(logreg.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Cross-Validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x144 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_cross_validation()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Cross-Validation in scikit-learn"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores: [0.961 0.922 0.958]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import cross_val_score\n",
    "from sklearn.datasets import load_iris\n",
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "iris = load_iris()\n",
    "logreg = LogisticRegression()\n",
    "\n",
    "scores = cross_val_score(logreg, iris.data, iris.target)\n",
    "print(\"Cross-validation scores: {}\".format(scores))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores: [1.    0.967 0.933 0.9   1.   ]\n"
     ]
    }
   ],
   "source": [
    "scores = cross_val_score(logreg, iris.data, iris.target, cv=5)\n",
    "print(\"Cross-validation scores: {}\".format(scores))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average cross-validation score: 0.96\n"
     ]
    }
   ],
   "source": [
    "print(\"Average cross-validation score: {:.2f}\".format(scores.mean()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'fit_time': array([0.001, 0.001, 0.001, 0.001, 0.001]),\n",
       " 'score_time': array([0., 0., 0., 0., 0.]),\n",
       " 'test_score': array([1.   , 0.967, 0.933, 0.9  , 1.   ]),\n",
       " 'train_score': array([0.95 , 0.967, 0.967, 0.975, 0.958])}"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.model_selection import cross_validate\n",
    "res = cross_validate(logreg, iris.data, iris.target, cv=5,\n",
    "                     return_train_score=True)\n",
    "display(res)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fit_time</th>\n",
       "      <th>score_time</th>\n",
       "      <th>test_score</th>\n",
       "      <th>train_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>9.79e-04</td>\n",
       "      <td>2.69e-04</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7.50e-04</td>\n",
       "      <td>2.07e-04</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8.71e-04</td>\n",
       "      <td>2.95e-04</td>\n",
       "      <td>0.93</td>\n",
       "      <td>0.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>8.22e-04</td>\n",
       "      <td>2.60e-04</td>\n",
       "      <td>0.90</td>\n",
       "      <td>0.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.44e-03</td>\n",
       "      <td>4.58e-04</td>\n",
       "      <td>1.00</td>\n",
       "      <td>0.96</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   fit_time  score_time  test_score  train_score\n",
       "0  9.79e-04    2.69e-04        1.00         0.95\n",
       "1  7.50e-04    2.07e-04        0.97         0.97\n",
       "2  8.71e-04    2.95e-04        0.93         0.97\n",
       "3  8.22e-04    2.60e-04        0.90         0.97\n",
       "4  1.44e-03    4.58e-04        1.00         0.96"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Mean times and scores:\n",
      " fit_time       9.73e-04\n",
      "score_time     2.98e-04\n",
      "test_score     9.60e-01\n",
      "train_score    9.63e-01\n",
      "dtype: float64\n"
     ]
    }
   ],
   "source": [
    "res_df = pd.DataFrame(res)\n",
    "display(res_df)\n",
    "print(\"Mean times and scores:\\n\", res_df.mean())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Benefits of Cross-Validation"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Stratified K-Fold cross-validation and other strategies"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Iris labels:\n",
      "[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0\n",
      " 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1\n",
      " 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2\n",
      " 2 2]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.datasets import load_iris\n",
    "iris = load_iris()\n",
    "print(\"Iris labels:\\n{}\".format(iris.target))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1YAAAFgCAYAAAC44OjyAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3XmcXFWd///Xm3STbvZNwk7CqhAwsoojkCjisOjgQGRRJCiLziCC44zb96ct44LjAgIigihREDC4MSqCOAm7SoAkEGQnGAkJBIQk0A3p5PP7494ORVFbd1V1neq8n49HPbrq3nede+oude/pe+4tRQRmZmZmZmY2dGu0ugJmZmZmZmbtzg0rMzMzMzOzOrlhZWZmZmZmVic3rMzMzMzMzOrkhpWZmZmZmVmd3LAyMzMzMzOrkxtWZtY0kiZK+nsDyxsrKSR1NKrMFEmaIunWgtfLJG1XS3YI07pO0glDfX+9qk1f0mWSvjycdWqEoa6r9S7PwZI0T9JBNWZD0g5DnM6Q32tm1i7csDIb4SS9XdLtkl6Q9Jyk2yTtnY8b1oM4G5qIWCciHqu3HEk9ki4vKvuQiJhab9lDVTj9lNbHUvPKzMyskhH9X1+z1Z2k9YDfAB8DfgasCewPvNzKetVCUkdE9Ldb2db+RvoZUTMzaw6fsTIb2XYCiIgrI2JFRPRGxA0RMUfSm4CLgP3yrmbPA0g6TNI9kpZImi+pZ6Cwgu5NJ0j6m6TFkj5fML4777r1D0n3A3sXVkbSZyQ9KmmppPslva9g3JT8bNo5kp4DeiSNkvTNfDqPAYdV+rCStpb0C0nPSHpW0gUVyl5D0v+T9ISkpyX9WNL6eb5L0uV5Gc9LulPSmIKyHss/w+OSPlCmLhdJ+mbRsF9L+mS1eVGirFXdqCRtLOnafPn8Bdi+KPudfLktkXSXpP3z4f8MfA44Ol/es/PhMySdlD+vNE8qLvuiOozL59sa+esfSHq6YPzlks4onH659TG3oaTf5vPqz5Je85kLyq203LbI59tzkh6RdHLB+3okXZO/dwnw0TLzan1Jl0p6StKTkr4saVQ+riHraolcyeWZj9tH0sx83CJJ3642H6rUaR9Jd+TveUrSBZLWLIodmq//iyV9Y2AZ5+//sKS/Ktv+r5e0bZnpHJqv80vz+fipanUzM2sLEeGHH36M0AewHvAsMBU4BNiwaPwU4NaiYROB3cj+8bI7sAg4Ih83FgjgEqAbeDPZ2a835ePPBm4BNgK2Bu4D/l5Q9mRgi7zso4EXgc0L6tIPfJzsbHo32QHuA3lZGwHT8+l3lPiso4DZwDnA2kAX8PYKZX8YeATYDlgH+AXwkzx/KvC/wFp5uXvm83JtYAmwc57bHNi1zLw/AJgPKH+9IdALbFHjvLi1oKwAdsifX0V29nFtYDzwZFH2g8DG+ef8D2Ah0JWP6wEuL6rnDOCk/HmleVJx2Zf4/H8D9syfPwg8VrCe/A14S4npv+Zz58MuA54D9sk/0xXAVWWmWXK55eNuAi7M14sJwDPAOwvmy3LgiHx5dJeZV78Cvp/P+02BvwCn5uMaua7WujzvAI7Pn68DvLXafChRl3nAQfnzPYG35tMaC/wVOKNoPZyef75tgIcKlt0RZOvOm/L3/z/g9jLr8FPA/gXbxR6t/q70ww8//GjEw2eszEawiFgCvJ1XD4ifyf9rX/a/1xExIyLujYiVETEHuBI4sCj2pcjOfs0mO0B8cz78/cBXIuK5iJgPnFdU9rSIWJCXfTXwMNkB84AFEXF+RPRHRG9e3rkRMT8ingO+VuHj7kPWUPnPiHgxIvoiovB6neKyPwB8OyIei4hlwGeBY5R1A1tOdjC7Q2Rn+u7K5yXASmC8pO6IeCoi5papzy1k833gDMNRwB0RsaDGefE6+dmRI4Ev5J/xPrJG8yoRcXlEPJt/zm8Bo4GdK5VboNI8GVBu2Re7CThQ0mb562vy1+PIGqmza6wTwC8i4i+Rdd+8gqxhVErJ5SZpa7Lt4NP5ejEL+AFwfMF774iIX+XLo7e44HybOYSsofFiRDxN1jA6Jo80cl1dpcryXA7sIGmTiFgWEX+qNB8q1GdgWndFxJ/yac0ja0QWb/tfz7fvvwHnAsfmw08FvhYRf82X01eBCWXOWi0HdpG0XkT8IyLurlY3M7N24IaV2QiXH+hMiYityM5wbEF2QFSSpH0lTc+7KL1A9p/4TYpiCwuev0T233LysucXjHuiqOwPSZqVdzV6Pq9PYdmF761aXpGtgSei/LVTpcouLO8Jsv+0jwF+AlwPXCVpgaT/kdQZES+SnV36KPBU3j3tjflnm5t3G1smaf+ICLKzSwMHnseRNQpqnRelvCGvY6V5/B95d6wX8nLXr6HcWubJgHLLvthNZGc/DwBuJjszdWD+uCUiVtZYp8FMs+RyI/tcz0XE0oLsE8CWBa+L149i2wKdZMt9YJl9n+zMFTR2XV2lyvL8CFl33wfy7n6H58PLzYdq09pJ0m8kLcy7RH6V1687xZ9xi/z5tsB3CubNc4B47TwecCRwKPCEpJsk7VetbmZm7cANK7PVSEQ8QNa1avzAoBKxnwLXAltHxPpk172oxkk8RXbQOGCbgSf5f64vAU4DNo6IDci6ChaWXVyfsuWVMB/YRuVvPFBc9gKyg8HCsvuBRRGxPCK+FBG7AG8DDgc+BBAR10fEu8i6AT6QfyYiYtfI7t63TkTckpd5JXBU/tn3BX4ONc+LUp7J61huHu8PfJrs7MmGebkvFJRbannXNE+qvK+Um8jO1k3Mn98K/BNZw+qmMu+pVr+KKiy3BcBGktYtiG9D1o2y3LSLX88n6/q4SURskD/Wi4hd8/GNXFeB6sszIh6OiGPJGndfB66RtHal9beK75Gt0ztGxHpk15kVr5PFn3FBwWc6tWDebBAR3RFxe/FEIuLOiPiXvN6/IuvaambW9tywMhvBJL0x/4/3VvnrrcnOoAx0GVoEbFV0gfq6ZP/d75O0D9mZllr9DPispA3zaX68YNzaZAerz+R1OZFXG3iVyjtd0laSNgQ+UyH7F7KD27MlrZ1fwP9PFfJXAmcqu9HCOmT/nb86IvolTZK0W971bglZ16UVksZIeq+ktckOspcBK8pNICLuyT/vD4DrI2LghgxDmRdExAqy6556JK0laReg8Deg1iVrCD0DdEj6Alm3uwGLgLGFNxyodZ5Uq1uJuj5Mdk3ZB4Gb865oi8jOVpRrWJVaH2tWbrnl3VJvB76Wrxe7k53tuaJCca+ZVxHxFHAD8C1J6ym70cf2kga6yjVjXa24PCV9UNIb8rN/A+vWinLzoUJ9Cqe3BFiWn4n9WInMf+bb99bAJ4Cr8+EXkW37u+Z1W1/S5OI3S1pT0gckrR8Ry/Pp1VI3M7PkuWFlNrItJTtT8mdJL5I1qO4juwge4P+AucBCSYvzYf8GnCVpKfAFBvff5C+RdQ96nOwg9CcDIyLifuBbZBfcLyK7QcZtVcq7hKxL02zgbrJGRUl5o+M9wA5kN0f4O1m3vXJ+mNfv5ry+fbzaENyM7JqgJWQX8N8EXE72nfkfZP+lf47s7Mu/VfkMVwIHkZ0JHKjrUObFgNPIusItJDv7+KOCcdcD15HdVOCJ/DMVdt2alv99VlKp61oqzZOhuAl4Nr8eZ+C1gHvK5Eutj4NRbrlB9g+FsWTL7pfAFyPiDxXKKjWvPkT2kwX3A//Ip7V5Pq4Z62q15fnPwFxJy4DvAMdERF+V+VDJp8j+kbI0/zxXl8j8GrgLmAX8Frg0/0y/JDtrdlXejfA+smvSSjkemKdX78D4wRrqZmaWvIG7VZmZmZmZmdkQ+YyVmZmZmZlZndywMjMzMzMzq5MbVmZmZmZmZnVyw8rMzMzMzKxObliZmZmZmZnVyQ0rMzMzMzOzOrlhZWZmZmZmVic3rMzMzMzMzOrkhpWZmZmZmVmdOlpdgZGis7NzYX9//5hW18OsXXR0dCxavnz5ZgOvu7u7F/b19XkbMqtRV1fXot7e3lXb0OjRo5995ZVXNmplnczaSVdX19O9vb3e71jDKCJaXYcRQVL09PSUHf/4448zbdo0Jk+ezLhx46qW57zzIz3f09NDRGggIykGvo9mzJjB5MmTmTZtGhMnTqxavvPOr455SWW3oXaov/POtzo/adKk12xDZvVyV8Bh0A4Huc47n0o+5Z2w886nlh+s1OrvvPMp580Gyw2rJkvtoNV551POp7ZTdd75lPODlVr9nXc+5bzZULhh1USpHbQ673zKeSCpnarzzqeeH4wU6++886nmzYaq7RpWkj4vaa6kOZJmSdq3Sr5H0qfy52dJOih/foaktcq85zRJj0gKSZsMpZ6pHbQ673zK+QGp7FSdd74d8rVKtf7OO59i3qwebdWwkrQfcDiwR0TsDhwEzK/1/RHxhYi4MX95BlCyYQXclpf9xFDqmdpBq/POp5wvlMJO1Xnn2yVfi5Tr77zzqeXN6tVut1vfHFgcES8DRMTigRGS5gFXA5PyQcdFxCOFb5Z0GfAbYIv8MV3S4oiYVJiLiHvy/KArmNpBq/POp5wfrNR2ws4777zzzo+MvFkjtNUZK+AGYGtJD0m6UNKBReOXRMQ+wAXAueUKiYjzgAXApOJGVT1SO2h13vmU84OV2k7Yeeedd975kZE3a5S2alhFxDJgT+AU4BngaklTCiJXFvzdr9n1kXSKpJmSZgJJHbQ673zq+cFIbSfsvPPOO+/8yMibNVK7dQUkIlYAM4AZku4FTgAuGxhdGB2GulwMXAwgKVI6aHXe+dTztUptJ+y888477/zIyJs1WludsZK0s6QdCwZN4LU3mDi64O8dVYpbCqzbwOolddDqvPOp52uR2k7YeedTzgNJ1cd551PPmzVau52xWgc4X9IGQD/wCFm3wAGjJf2ZrMF4bJWyLgauk/RU8XVWkk4H/gvYDJgj6XcRcVK9lU/5INd551PLp7gTdt75VPMDUqmP8863Q96s0RTR9B5zwyK/K+BehXcKHObpR09PT9nxqR20Ou98q/M9PT1ExKpbb0qKge+jVHfCzjufUl5S2W2oHervvPOtzk+aNOk125BZvdqqK2C7aoeDXOedTyWf8k7YeedTyw9WavV33vmU82aD1W5dAcuKiLGtrkMpqR20Ou98yvnUdqrOO59yfrBSq7/zzqecNxsKn7FqotQOWp13PuU8kNRO1XnnU88PRor1d975VPNmQzVirrFqtc7OzoX9/f1jWl0Ps3bR0dGxaPny5ZsNvB49evSzr7zyykatrJNZO+nq6nq6t7d31X6nu7t7YV9fn/dDZjXq6upa1Nvbu1n1pFlt3LAyMzMzMzOrk7sCmpmZmZmZ1alqw0rSJyStp8ylku6WdPBwVM7MzMzMzKwd1HLG6sMRsQQ4GHgDcCJwdlNrZWZmZmZm1kZqaVgN/HDaocCPImJ2wTAzMzMzM7PVXi0Nq7sk3UDWsLpe0rrAyuZWy8zMzMzMrH1UvSugpDWACcBjEfG8pI2BLSNiznBU0MzMzMzMLHUd1QIRsVLSImAXSVXzZmZmZmZmq5uqDSVJXweOBu4HVuSDA7i5ifUyMzMzMzNrG7V0BXwQ2D0iXh6eKpmZmZmZmbWXWrr2PQZ0Am5YVdDd3b2wr69vTKvrYdYuurq6FvX29m428Lqzs3NRf3//pq2sk1k7GTVq1HP9/f0bD7z2fshscIr3Q2b1quWM1c+BNwN/pKBxFRGnN7dq7UVSFM7LGTNmMHnyZKZNm8bEiROrvt9551e3vCQiQgWv44QTTmDcuHFVy3/88ceZNm0akydPdt751Tb/0ksvvW4bKrVPT2F7d975FPPF+yGzetVyu/Vrgf8GbgfuKnhYGe30peK8863OF0rpoNV551PP1yK17d1551POm9WrlrsCTpW0JrBTPujBiFje3Gq1r9S+JJx3PuX8YKV8kOu886nlU9venXc+5bxZI9RyV8CJwFRgHiBga0knRITvClgktS8J551POT9YqR20Ou98yvnUtnfnnU85b9YotXQF/BZwcEQcGBEHAO8GzmlutcqT9HlJcyXNkTRL0r5V8j2SPpU/P0vSQfnzMyStVeY9V0h6UNJ9kn4oqbOWuqX0JeG886nnByO1g1bnnU85n+L27rzzqebNGqmWhlVnRDw48CIiHiK7S+Cwk7QfcDiwR0TsDhwEzK/1/RHxhYi4MX95BlCyYQVcAbwR2A3oBk6qpfxUviScd74d8rVK7aDVeedTzqe6vTvvfIp5s0arpWE1U9Klkibmj0to3c0rNgcWD/ymVkQsjogFAJLmSfq6pL/kjx2K3yzpMklHSTod2AKYLml6cS4ifhc54C/AVrVULoUvCeedb5d8LVI7aHXe+ZTz4J4Tzjs/mLxZo9XSsPoYMBc4HfgEcD/w0WZWqoIbyK7xekjShZIOLBq/JCL2AS4Azi1XSEScBywAJkXEpHK5vAvg8cDvy4w/RdJMSTNrqXyKXyrOO59qPrWDVuedTzk/IJXt13nn2yFv1mhVG1YR8XJEfDsi/jUi3hcR5wycMRpuEbEM2BM4BXgGuFrSlILIlQV/92vAJC8Ebo6IW8rU5+KI2Csi9qpWUKpfKs47n2I+tYNW551POV8ohe3XeefbJW/WaGXvCijpZxHxfkn3Aq/7xcH8GqdhFxErgBnAjLxuJwCXDYwujNYzHUlfBN4AnFpPOZD2l4rzzqeWT+2g1XnnU84PVmrbu/POp5w3G6xKt1v/RP738OGoSC0k7QysjIiH80ETgCcKIkcDZ+d/76hS3FJgXWBxiemcRHb3w3dGxMp66pzal4TzzqecT+2g1XnnU84PVmrbu/POp5w3G4qyDauIeCp/+m8R8enCcZK+Dnz69e9qunWA8yVtAPQDj5B1CxwwWtKfybo4HlulrIuB6yQ9VeI6q4vIGmx3SAL4RUScNdjKpvYl4bzzKeeBpA5anXc+9fxgpLa9O+98ynmzoVJ247sKAenuiNijaNicVnUFLEfSPGCviHjdGahhmn4UzsvUviScdz61vCQiQgWv44QTTkjmoNV551PPv/TSS6/bhkrt01PY3p13PsV88X7IrF5rlBsh6WP5NUw75z/GO/B4HJgzfFVsP+30peK8863OF0rpoNV551PP1yK17d1551POm9Wr0jVWPwWuA74GfKZg+NKIeK6ptRqCiBjb6jpAel8Szjufcn6wUj7Idd751PKpbe/OO59y3qwRqnYFXBWUNgW6Bl5HxN+aVal21N3dvbCvr29Mq+th1i66urqe7u3tXbXNdHZ2Luzv7/c2ZFajjo6ORcuXL99s4LX3Q2aD09XVtai3t3ez6kmz2tRyjdV7gG8DWwBPA9sCf42IXZtfPTMzMzMzs/SVvcaqwJeBtwIPRcQ44J3AbU2tlZmZmZmZWRuppWG1PCKeBdaQtEZETCf7/SgzMzMzMzOj8s0rBjwvaR3gZuAKSU+T/YaUmZmZmZmZUds1VmsDvWRntz4ArA9ckZ/FMjMzMzMzW+1VbFhJGgVcHxEHDV+VzMzMzMzM2kvFa6wiYgXwkqT1h6k+ZmZmZmZmbaeWa6z6gHsl/QF4cWBgRJzetFqZmZmZmZm1kVoaVr/NH2ZmZmZmZlZC1ZtXAEjqBraJiAebXyUzMzMzM7P2UvWMlaT3AN8E1gTGSZoAnBUR72125dpJd3f3wr6+vjGtrodZu+jq6lrU29u72cBrb0Nmg1O8DXV2di7s7+/3NmRWo46OjkXLly/frHrSrDa13G79LuAdwIyIeEs+7N6I2G0Y6tc2JMX06dOZPHky06ZNY+LEiVXfM2PGDOedX23zkogIFbyOSt9HqdXfeedbnS+1DfX09ADw+OOPM23aNCZPnsy4ceOqlu+886tjvqen5zXbkFm9Kt4VMNcfES8UDavef3A1lPpO2HnnU8oPRor1d975VPOpHLQ673w75M0aqZabV9wn6ThglKQdgdOB25tbrfaUyk7VeefbIV+rVOvvvPMp5lM7aHXe+ZTzZo1WyxmrjwO7Ai8DPwVeAD7RzEq1qxR2qs473y75WqRcf+edTy0PJHXQ6rzzqefNGq2WhtVhEfH5iNg7f/w/oGU3rpD0eUlzJc2RNEvSvlXyPZI+lT8/S9JB+fMzJK1V5j2XSpqdT+MaSes0ou6p7YSdd955550fGfkBKR20Ou986nmzRqulYfXZGoc1naT9gMOBPSJid+AgYH6t74+IL0TEjfnLM4CSDSvgzIh4cz6NvwGn1VFtIL2dsPPOO++88yMjXyilg1bnnU89b9ZoZa+xknQIcCiwpaTzCkatB/Q3u2JlbA4sjoiXASJi8cAISfOAq4FJ+aDjIuKRwjdLugz4DbBF/pguaXFETCrMRcSSPC+gmzpv1pHaTth555133vmRkR+slA9ynXc+tbzZYFU6Y7UAmAn0AXcVPK4F3t38qpV0A7C1pIckXSjpwKLxSyJiH+AC4NxyhUTEeWSfb1Jxo2qApB8BC4E3AueXyZwiaaakmeWmldpO2HnnnXfe+ZGRH6zUDlqddz7lvNlQlD1jFRGzgdmSroiIVp2heo2IWCZpT2B/sjNTV0v6TERclkeuLPh7Tp3TOlHSKLJG1dHAj0pkLgYuBpD0urNaqe2EnXc+5TyQVH2cdz71/GCkdtDqvPMp582GquwZK0k/y5/ek9/E4TWPYarf60TEioiYERFfJLv26cjC0WWeD3laZN0Lj6yWLZbiTth551PND0ilPs473w75WqV20Oq88ynnzepR6XesBm6pfvhwVKQWknYGVkbEw/mgCcATBZGjgbPzv3dUKW4psC6wuHBgfl3V9hHxSP78PcADg6lnqjth551PMV8ohfo473y75CdNKtmT/TVSO2h13vmU82b1qtQV8Kn87xPlMi2wDnC+pA3IbqDxCHBKwfjRkv5Mdibu2CplXQxcJ+mpouusBEyVtF7+fDbwsVormPJO2HnnU8sPVmr1d975lPOpHbQ673zKebNGqHTGKjkRcRfwtgqR70bEl4re01PwfErB8/MpcVOKiFgJ/NNQ6pfaTtV551POD1Zq9Xfe+ZTzqR20Ou98ynmzRlmj1RUYSVLaqTrvfOr5wUix/s47n2o+tYNW551POW/WSGUbVpI+JWnr4axMPSJibOHvWrVCKjtV551vh3ytUq2/886nmE/toNV551POmzWaIkrfPE/SOcBRwONkty+f1uqGS8q6u7sX9fX1bdrqepi1i66urkW9vb2bDbzu7u5e2NfXN6aVdTJrJ8XbUGdn56L+/n7vh8xqNGrUqOf6+/s3bnU9bOQo27CCVXfIOwA4BvgXshs5XAn8MiKWDksNzczMzMzMElexYfWaYPZjuQeR3c5854hYq5kVMzMzMzMzaxc13RVQ0m5kZ62OBp4FPtfMSpmZmZmZmbWTsg0rSTuS/RbUMcAK4Crg4Ih4bJjqZmZmZmZm1hYq3bziMbLrqa6KiHuHtVZmZmZmZmZtpFLDakdgTETcWjR8f2BBRDw6DPUzMzMzMzNLXqUfCD4HWFJieC9wbnOqY2ZmZmZm1n4qNazGRsSc4oERMRMY27QamZmZmZmZtZlKDauuCuO6G10RMzMzMzOzdlWpYXWnpJOLB0r6CHBX86pkZmZmZmbWXirdvGIM8EvgFV5tSO0FrAm8LyIWDksN20R3d/fCvr6+Ma2uh1m76OrqWtTb27vZwGtvQ2aD423IrD7F25BZvco2rFYFpEnA+Pzl3Ij4v6bXqg1Jimrz0sxeJYmIUMFrb0Nmg+BtyKw+xduQWb2qNqysNt6hmQ2ODwrN6uNtyKw+blhZo1W6xsrMzMzMzMxq4IaVmZmZmZlZnZrWsJK0maSrJD0q6X5Jv5O0k6Sxku5r0jR7JH2qSuYySUcNosym1dfMzMzMzEaGjmYUKklkdxScGhHH5MMmAGOA+c2YppmZmZmZWas064zVJGB5RFw0MCAiZkXELYWh/GzQLZLuzh9vy4dvLulmSbMk3Sdpf0mj8rNN90m6V9KZlSog6WRJd0qaLennktYqGH1QPt2HJB2e50dJ+kb+njmSTm3c7LB6LVy4kGOOOYbtt9+eXXbZhUMPPZSHHnqIefPmMX78+OoFDMHLL7/M0UcfzQ477MC+++7LvHnzmjIds+HQim3o5ptvZo899qCjo4NrrrmmKdMwGy6t2Ia+/e1vs8suu7D77rvzzne+kyeeeKIp0zGzxmhWw2o8tf2I8NPAuyJiD+Bo4Lx8+HHA9RExAXgzMAuYAGwZEeMjYjfgR1XK/kVE7B0Rbwb+CnykYNxY4EDgMOAiSV35+BciYm9gb+BkSeNq+AzWZBHB+973PiZOnMijjz7K/fffz1e/+lUWLVrU1OleeumlbLjhhjzyyCOceeaZfPrTn27q9MyapVXb0DbbbMNll13Gcccd19TpmDVbq7aht7zlLcycOZM5c+Zw1FFH8V//9V9NnZ6Z1afVN6/oBC6RdC8wDdglH34ncKKkHmC3iFgKPAZsJ+l8Sf8MLKlS9vj8rNS9wAeAXQvG/SwiVkbEw3m5bwQOBj4kaRbwZ2BjYMdKE5B0iqSZkmYO4jPbIE2fPp3Ozk4++tGPrho2YcIE9t9//9fk5s2bx/77788ee+zBHnvswe233w7AU089xQEHHMCECRMYP348t9xyCytWrGDKlCmMHz+e3XbbjXPOOed10/31r3/NCSecAMBRRx3FH//4R3wrY2tHrdqGxo4dy+67784aa7R6V2NWn1ZtQ5MmTWKttbION29961v5+9//3sRPaWb1aso1VsBcoJYbRJwJLCI7K7UG0AcQETdLOoDsjNJPJH0jIn4s6c3Au4F/B94PfLhC2ZcBR0TEbElTgIkF44qPjgMQ8PGIuL5whKSx5SYQERcDF+c5H3E3yX333ceee+5ZNbfpppvyhz/8ga6uLh5++GGOPfZYZs6cyU9/+lPe/e538/nPf54VK1bw0ksvMWvWLJ588knuuy+7L8nzzz//uvKefPJJtt56awA6OjpYf/31efbZZ9lkk00a+wHNmqxV25DZSJHCNnTppZdyyCGHNOTzmFlzNKth9X/AVyWdHBGXAEjaG1gLKOzoyP9xAAAgAElEQVQgvD7w94hYKekEYFSe3RZ4MiIukbQ2sIek3wGvRMTPJT1K1nCqZF3gKUmdZGesniwYN1nSVGAcsB3wIHA98DFJ/xcRyyXtVPQeS9zy5cs57bTTmDVrFqNGjeKhhx4CYO+99+bDH/4wy5cv54gjjmDChAlst912PPbYY3z84x/nsMMO4+CDD35deaXOTmX3ZTEbmRq9DZmtbpq1DV1++eXMnDmTm266abg+ipkNQVP6Z+Q//f4+4F357dbnAj3AgqLohcAJkv4E7AS8mA+fCMySdA9wJPAdYEtgRt5V7zLgs1Wq8f+Rden7A/BA0bgHgZuA64CPRkQf8APgfuDu/Pbq36d5DU8bhF133ZW77qp+yd4555zDmDFjmD17NjNnzuSVV14B4IADDuDmm29myy235Pjjj+fHP/4xG264IbNnz2bixIl897vf5aSTTnpdeVtttRXz52c3sezv7+eFF15go402auyHMxsGrdqGzEaKVm5DN954I1/5yle49tprGT16dEM/l5k1VtMaDhGxgKy7Xinj88zDwO4Fwz+bD58KTC3xvj2qTLOn4Pn3gO+VyEwp896VwOfyR6EXBuprrfGOd7yDz33uc1xyySWcfPLJANx555289NJLbLvttqtyL7zwAltttRVrrLEGU6dOZcWKFQA88cQTbLnllpx88sm8+OKL3H333Rx66KGsueaaHHnkkWy//fZMmTLlddN973vfy9SpU9lvv/245ppreMc73uEzVtaWWrUNmY0UrdqG7rnnHk499VR+//vfs+mmmw7LZzWzoZMvxm8MSeF52TwLFizgjDPO4K677qKrq4uxY8dy7rnn0tnZyeGHH859993Hww8/zJFHHsla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\n",
      "text/plain": [
       "<Figure size 864x360 with 2 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_stratified_cross_validation()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### More control over cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import KFold\n",
    "kfold = KFold(n_splits=5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores:\n",
      "[1.    0.933 0.433 0.967 0.433]\n"
     ]
    }
   ],
   "source": [
    "print(\"Cross-validation scores:\\n{}\".format(\n",
    "      cross_val_score(logreg, iris.data, iris.target, cv=kfold)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores:\n",
      "[0. 0. 0.]\n"
     ]
    }
   ],
   "source": [
    "kfold = KFold(n_splits=3)\n",
    "print(\"Cross-validation scores:\\n{}\".format(\n",
    "    cross_val_score(logreg, iris.data, iris.target, cv=kfold)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores:\n",
      "[0.9  0.96 0.96]\n"
     ]
    }
   ],
   "source": [
    "kfold = KFold(n_splits=3, shuffle=True, random_state=0)\n",
    "print(\"Cross-validation scores:\\n{}\".format(\n",
    "    cross_val_score(logreg, iris.data, iris.target, cv=kfold)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Leave-one-out cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Number of cv iterations:  150\n",
      "Mean accuracy: 0.95\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import LeaveOneOut\n",
    "loo = LeaveOneOut()\n",
    "scores = cross_val_score(logreg, iris.data, iris.target, cv=loo)\n",
    "print(\"Number of cv iterations: \", len(scores))\n",
    "print(\"Mean accuracy: {:.2f}\".format(scores.mean()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Shuffle-split cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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tk6OAaZMmdJh+vTp7Rozj0wS5B8AVwF7hVeSaEUwzCIpSQMl9Y95aRhbnkh3Ysz/V9Msfx3QIYM4i04Udr7NfbDM9/ijdrCpL18sotZ+iq18IYnC+iy2/VWxiUJ7mDt3buv+/fsPOfnkk3caMmTI4I8//rjl2LFj++y222679uvXb8jll1/eo77s8OHDB77yyittqqur6dChw7ALL7yw18CBAwcPGzZsUH2CfvHFF/e87rrrutWXv/DCC3vtvvvuu/bt23e3559/vh3A2rVrWxxxxBG7DBw4cPCxxx6782677bbrK6+80iY+tvPOO6/3LrvsMmTAgAGDL7jggl4AixcvLj388MN32W233Xbdfffdd33hhRfazZs3r/WkSZO63nbbbTsMGjRocP1yspW2O9/M6iQtBwZLyrT7vz0wXlInoAZ4ny2HOLSW9BpBgj42zbzuAp6VtDR+HHJ4Et9PgR2A2ZKeMbOzM4yx4OX7zjpq8U/L8oSqqB1sYstPnDgxozrksyi2n2IqX2zyff1HcX9VbKLSHj744IOyu+++e+FBBx30McC4ceM+6d69e211dTX77LPPwJkzZ64ePnz4xthp1q9fXzJq1Kh1t99++6dnn3127z/96U/l119//bL4eZsZc+bMeeeBBx7Y7rrrrut52GGHvXfDDTd069atW/W//vWvD1599dU2+++//+D46RYvXlz6wgsvbPfee+/Na9GiBZWVlSUA559//k5XXnnlskMOOeSLd999t9UxxxzT/7333pt38sknrywvL6+59tprt7q+cabSJrySbiTo6X2b4JrGEAyLeCnZNGY2ExiZYrZ/MrNfxU1TEfP4jJjH44HxSZZzK3BrygoUqXzfWUct/vrymYriwaaYem6i2n6y+bxEKR5PjlPL9/Uftf1Psf3SVS8q7WHHHXfcdNBBB22+98S9997b5b777iuvqanRypUrW86ePbtNfIJcVlZW973vfW8twPDhwze8/PLL7RPNe8yYMZ8DjBw5csM111zTCuDVV19tf+WVVy4D2Hfffat22WWXqvjpunXrVtuiRQsbO3Zsn6OPPnrNiSeeuAZg+vTpHT/44IOy+nJr1qwpWb9+fZPcXCaTHuHjgYH1l2zLd2VlZcsl5dXtNsvKypYnei2TemRyAtC2KN+qVautxiBlUoeoxF8v0bYoLS1dXlFRkbAe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\n",
      "text/plain": [
       "<Figure size 720x144 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_shuffle_split()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores:\n",
      "[0.973 0.933 0.933 0.933 0.92  0.853 0.947 0.813 0.947 0.96 ]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import ShuffleSplit\n",
    "shuffle_split = ShuffleSplit(test_size=.5, train_size=.5, n_splits=10)\n",
    "scores = cross_val_score(logreg, iris.data, iris.target, cv=shuffle_split)\n",
    "print(\"Cross-validation scores:\\n{}\".format(scores))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Cross-validation with groups"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x144 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_group_kfold()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores:\n",
      "[0.75  0.8   0.667]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import GroupKFold\n",
    "# create synthetic dataset\n",
    "X, y = make_blobs(n_samples=12, random_state=0)\n",
    "# assume the first three samples belong to the same group,\n",
    "# then the next four, etc.\n",
    "groups = [0, 0, 0, 1, 1, 1, 1, 2, 2, 3, 3, 3]\n",
    "scores = cross_val_score(logreg, X, y, groups, cv=GroupKFold(n_splits=3))\n",
    "print(\"Cross-validation scores:\\n{}\".format(scores))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Grid Search"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Simple Grid Search"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of training set: 112   size of test set: 38\n",
      "Best score: 0.97\n",
      "Best parameters: {'C': 100, 'gamma': 0.001}\n"
     ]
    }
   ],
   "source": [
    "# naive grid search implementation\n",
    "from sklearn.svm import SVC\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    iris.data, iris.target, random_state=0)\n",
    "print(\"Size of training set: {}   size of test set: {}\".format(\n",
    "      X_train.shape[0], X_test.shape[0]))\n",
    "\n",
    "best_score = 0\n",
    "\n",
    "for gamma in [0.001, 0.01, 0.1, 1, 10, 100]:\n",
    "    for C in [0.001, 0.01, 0.1, 1, 10, 100]:\n",
    "        # for each combination of parameters, train an SVC\n",
    "        svm = SVC(gamma=gamma, C=C)\n",
    "        svm.fit(X_train, y_train)\n",
    "        # evaluate the SVC on the test set\n",
    "        score = svm.score(X_test, y_test)\n",
    "        # if we got a better score, store the score and parameters\n",
    "        if score > best_score:\n",
    "            best_score = score\n",
    "            best_parameters = {'C': C, 'gamma': gamma}\n",
    "\n",
    "print(\"Best score: {:.2f}\".format(best_score))\n",
    "print(\"Best parameters: {}\".format(best_parameters))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### The danger of overfitting the parameters and the validation set"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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VdMqDvv27du3b9/+4DQlELBfv2+M6R/DDq6aVnHYt2/fvn379odPUwMH+0P7xpj+MazgqmkVh3379u3bt29/+DQ5cLA/fN8YM3L0HFw1reKwb9++ffv27Q+fpgUC9uv1jTEjS8/BVZMqDvv27du3b99+td8NTQsE7NfrG2NGnp6DqyZVHPbt27dv3779ar9TmhYI2K/XN8aMDj0HV02qOOzbt2/fvn371X4nNC0QsF+vb4wZPXoOroaiyRWNffv27du3bz/RtEDAfr2+MWZ0GZHgqmkVh3379u3bt29/IE0LBOzX6xtjRp/ag6umVRz27du3b9++/YE0LRCwX69vjOkPtQZXTas47Nu3b9++ffvVNCkQsF+vb4zpH7UFV02rOOzbt2/fvn377WlKIGC/ft8Y0z9qCa6aVnHYt2/fvn379genKYGA/fp9Y0z/GHZw1bSKw759+/bt27c/fJoaONgf2jfG9I9hBVdNqzjs27dv3759+8OnyYGD/eH7xpiRo+fgqmkVh3379u3bt29/+DQtELBfr2+MGVl6Dq6aVHHYt2/fvn379qv9bmhaIGC/Xt8YM/L0HFw1qeKwb9++ffv27Vf7ndK0QMB+vb4xZnToObhqUsVh3759+/bt26/2O6FpgYD9en1jzOjRc3A1FE2uaOzbt2/fvn37iaYFAvbr9Y0xo8uIBFdNqzjs27dv3759+wNpWiBgv17fGDP61B5cNa3isG/fvn379u0PpGmBgP16fWNMf6g1uGpaxWHfvn379u3br6ZJgYD9en1jTP+oLbhqWsVh3759+/bt229PUwIB+/X7xpj+UUtw1bSKw759+/bt27c/OE0JBOzX7xtj+sewg6umVRz27du3b9++/eHT1MDB/tC+MaZ/DCu4alrFYd++ffv27dsfPk0OHOwP3zfGjBw9B1dNqzjs27dv3759+8OnaYGA/Xp9Y8zI0nNw1aSKw759+/bt27df7XdD0wIB+/X6xpiRp+fgqkkVh3379u3bt2+/2u+UpgUC9uv1jTGjQ8/BVZMqDvv27du3b99+td8JTQsE7NfrG2NGj56Dq6FockVj3759+/bt2080LRCwX69vjBldRiS4alrFYd++ffv27dsfSNMCAfv1+saY0af24KppFYd9+/bt27dvfyBNCwTs1+sbY/pDrcFV0yoO+/bt27dv3341TQoE7Nfr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\n",
      "text/plain": [
       "<Figure size 1080x72 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_threefold_split()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Size of training set: 84   size of validation set: 28   size of test set: 38\n",
      "\n",
      "Best score on validation set: 0.96\n",
      "Best parameters:  {'C': 10, 'gamma': 0.001}\n",
      "Test set score with best parameters: 0.92\n"
     ]
    }
   ],
   "source": [
    "from sklearn.svm import SVC\n",
    "# split data into train+validation set and test set\n",
    "X_trainval, X_test, y_trainval, y_test = train_test_split(\n",
    "    iris.data, iris.target, random_state=0)\n",
    "# split train+validation set into training and validation sets\n",
    "X_train, X_valid, y_train, y_valid = train_test_split(\n",
    "    X_trainval, y_trainval, random_state=1)\n",
    "print(\"Size of training set: {}   size of validation set: {}   size of test set:\"\n",
    "      \" {}\\n\".format(X_train.shape[0], X_valid.shape[0], X_test.shape[0]))\n",
    "\n",
    "best_score = 0\n",
    "\n",
    "for gamma in [0.001, 0.01, 0.1, 1, 10, 100]:\n",
    "    for C in [0.001, 0.01, 0.1, 1, 10, 100]:\n",
    "        # for each combination of parameters, train an SVC\n",
    "        svm = SVC(gamma=gamma, C=C)\n",
    "        svm.fit(X_train, y_train)\n",
    "        # evaluate the SVC on the validation set\n",
    "        score = svm.score(X_valid, y_valid)\n",
    "        # if we got a better score, store the score and parameters\n",
    "        if score > best_score:\n",
    "            best_score = score\n",
    "            best_parameters = {'C': C, 'gamma': gamma}\n",
    "\n",
    "# rebuild a model on the combined training and validation set,\n",
    "# and evaluate it on the test set\n",
    "svm = SVC(**best_parameters)\n",
    "svm.fit(X_trainval, y_trainval)\n",
    "test_score = svm.score(X_test, y_test)\n",
    "print(\"Best score on validation set: {:.2f}\".format(best_score))\n",
    "print(\"Best parameters: \", best_parameters)\n",
    "print(\"Test set score with best parameters: {:.2f}\".format(test_score))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Grid Search with Cross-Validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVC(C=100, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma=0.01, kernel='rbf',\n",
       "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
       "  tol=0.001, verbose=False)"
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for gamma in [0.001, 0.01, 0.1, 1, 10, 100]:\n",
    "    for C in [0.001, 0.01, 0.1, 1, 10, 100]:\n",
    "        # for each combination of parameters,\n",
    "        # train an SVC\n",
    "        svm = SVC(gamma=gamma, C=C)\n",
    "        # perform cross-validation\n",
    "        scores = cross_val_score(svm, X_trainval, y_trainval, cv=5)\n",
    "        # compute mean cross-validation accuracy\n",
    "        score = np.mean(scores)\n",
    "        # if we got a better score, store the score and parameters\n",
    "        if score > best_score:\n",
    "            best_score = score\n",
    "            best_parameters = {'C': C, 'gamma': gamma}\n",
    "# rebuild a model on the combined training and validation set\n",
    "svm = SVC(**best_parameters)\n",
    "svm.fit(X_trainval, y_trainval)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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BAMCAm6fdrGRHnzwQWzYsAERERH46aef8MYbb+DChQtmm2PdMBD0T3/6E4YNG1Z56c66deswefLkRv+CaDw484cffkBMTAxcXV1RVlaGsrIyPPDAA1i1alWLmFzA1soeAMLCwvDll18iLCwMJ06cwIIFC3DkyBHce++9Zknf8JqNGjUKZWVllfXrl19+wfr165Fo4iDfmthS/TLW6LKfOfNWg2L9euCPf7xthWwAuHLlCsLCwvDxxx8jPDwcWVlZOHfuHPz8/G7tdO0asGHDrW3jhe5MEBUVhYCAAHTt2hVdu3ZFdnY29u/fj/3799crnZoY3r/eeustPPDAA5X/j3/84x8xZ84cvn8RkeVWym5ptFotJkyYgO3bt0NE8O9//xsjRoxAcXFxU2etVTKeiSUlJQUajQYiAhcXF+Tk5OAPf/iDWWfIKS4uxsCBA7F8+XLcc889cHFxMXtjMioqCjt37kR2djaKi4tx48YNHD16FKNGjTJL2uvXr0d6ejp+/fVXKKVQXFyM8vJylJaW4siRI9iwYQOioqLMcCaWZYtlX1xcjP79++Ozzz7D3XffDVdXV5w6dcps6RteszVr1txW9nv27MF9993X6NfKluqXsUaX/ciRQGCg/n5enr6XoUqv//nz5xEREYHu3btjxIgRKC0txW297Erpj8vL028HBQEjRtTrPLRaLe69917s378fxcXF2LNnDwYOHHjHrE+NERUVhY0bNyI7OxsigsLCQuzduxePPfaYWdK2xfpF1Jqwh8LIww8/jMcffxwjRozAnj17sHLlSk5X14QMv7qOGDECSqnKaQSzsrLw1VdfITk52WyxtFot5syZg9zcXMyePRvt27eHZ5VfGs0RY8KECfjxxx8xefJkHD58GKNHj779l8pGpG08RWnVS2m2bNli9ilKLcnWyr5Tp04YP348srKyMH78eLi7u5v9unDDr9RTp06F4VLW2NhYbNmypdFp21r9Mmh02YsA770HTJig396yRd8gWLJE/xwAZ2dnaLVavPjii5WHVV7upBTw5pv64wzee6/y2Pp49tln8fjjj2PSpEn48ccfsXLlSrPWY61Wi3HjxuGrr77C5MmTsX37dowcORLmuGzaVusXUavS1NNM1fdm7mljq3r55ZeVu7u7eumllywah0xTr2kXW4C0tDTl4eGh3n77beXh4WHW6Yhr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\n",
      "text/plain": [
       "<Figure size 720x216 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_cross_val_selection()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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YElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJNMFgSERERkSYYLImIiIhIEwyWRERERKQJBksiIiIi0gSDJRERERFpgsGSiIiIiDTBYElEREREmmCwJCIiIiJN/D9eZes9d0IpAQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 700x210 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_grid_search_overview()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Parameter grid:\n",
      "{'C': [0.001, 0.01, 0.1, 1, 10, 100], 'gamma': [0.001, 0.01, 0.1, 1, 10, 100]}\n"
     ]
    }
   ],
   "source": [
    "param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100],\n",
    "              'gamma': [0.001, 0.01, 0.1, 1, 10, 100]}\n",
    "print(\"Parameter grid:\\n{}\".format(param_grid))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "from sklearn.svm import SVC\n",
    "grid_search = GridSearchCV(SVC(), param_grid, cv=5,\n",
    "                          return_train_score=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    iris.data, iris.target, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "GridSearchCV(cv=5, error_score='raise-deprecating',\n",
       "       estimator=SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,\n",
       "  decision_function_shape='ovr', degree=3, gamma='auto_deprecated',\n",
       "  kernel='rbf', max_iter=-1, probability=False, random_state=None,\n",
       "  shrinking=True, tol=0.001, verbose=False),\n",
       "       iid='warn', n_jobs=None,\n",
       "       param_grid={'C': [0.001, 0.01, 0.1, 1, 10, 100], 'gamma': [0.001, 0.01, 0.1, 1, 10, 100]},\n",
       "       pre_dispatch='2*n_jobs', refit=True, return_train_score=True,\n",
       "       scoring=None, verbose=0)"
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grid_search.fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test set score: 0.97\n"
     ]
    }
   ],
   "source": [
    "print(\"Test set score: {:.2f}\".format(grid_search.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best parameters: {'C': 100, 'gamma': 0.01}\n",
      "Best cross-validation score: 0.97\n"
     ]
    }
   ],
   "source": [
    "print(\"Best parameters: {}\".format(grid_search.best_params_))\n",
    "print(\"Best cross-validation score: {:.2f}\".format(grid_search.best_score_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best estimator:\n",
      "SVC(C=100, cache_size=200, class_weight=None, coef0=0.0,\n",
      "  decision_function_shape='ovr', degree=3, gamma=0.01, kernel='rbf',\n",
      "  max_iter=-1, probability=False, random_state=None, shrinking=True,\n",
      "  tol=0.001, verbose=False)\n"
     ]
    }
   ],
   "source": [
    "print(\"Best estimator:\\n{}\".format(grid_search.best_estimator_))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Analyzing the result of cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>mean_fit_time</th>\n",
       "      <th>std_fit_time</th>\n",
       "      <th>mean_score_time</th>\n",
       "      <th>std_score_time</th>\n",
       "      <th>...</th>\n",
       "      <th>split3_train_score</th>\n",
       "      <th>split4_train_score</th>\n",
       "      <th>mean_train_score</th>\n",
       "      <th>std_train_score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1.40e-03</td>\n",
       "      <td>6.85e-04</td>\n",
       "      <td>4.92e-04</td>\n",
       "      <td>1.69e-04</td>\n",
       "      <td>...</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.37</td>\n",
       "      <td>2.85e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.24e-03</td>\n",
       "      <td>5.33e-04</td>\n",
       "      <td>4.27e-04</td>\n",
       "      <td>1.46e-04</td>\n",
       "      <td>...</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.37</td>\n",
       "      <td>2.85e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1.10e-03</td>\n",
       "      <td>3.77e-04</td>\n",
       "      <td>6.01e-04</td>\n",
       "      <td>4.14e-04</td>\n",
       "      <td>...</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.37</td>\n",
       "      <td>2.85e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>8.72e-04</td>\n",
       "      <td>3.81e-05</td>\n",
       "      <td>3.39e-04</td>\n",
       "      <td>3.83e-05</td>\n",
       "      <td>...</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.37</td>\n",
       "      <td>2.85e-03</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1.40e-03</td>\n",
       "      <td>4.82e-04</td>\n",
       "      <td>6.03e-04</td>\n",
       "      <td>1.58e-04</td>\n",
       "      <td>...</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.37</td>\n",
       "      <td>2.85e-03</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   mean_fit_time  std_fit_time  mean_score_time  std_score_time  \\\n",
       "0       1.40e-03      6.85e-04         4.92e-04        1.69e-04   \n",
       "1       1.24e-03      5.33e-04         4.27e-04        1.46e-04   \n",
       "2       1.10e-03      3.77e-04         6.01e-04        4.14e-04   \n",
       "3       8.72e-04      3.81e-05         3.39e-04        3.83e-05   \n",
       "4       1.40e-03      4.82e-04         6.03e-04        1.58e-04   \n",
       "\n",
       "        ...        split3_train_score split4_train_score mean_train_score  \\\n",
       "0       ...                      0.37               0.36             0.37   \n",
       "1       ...                      0.37               0.36             0.37   \n",
       "2       ...                      0.37               0.36             0.37   \n",
       "3       ...                      0.37               0.36             0.37   \n",
       "4       ...                      0.37               0.36             0.37   \n",
       "\n",
       "   std_train_score  \n",
       "0         2.85e-03  \n",
       "1         2.85e-03  \n",
       "2         2.85e-03  \n",
       "3         2.85e-03  \n",
       "4         2.85e-03  \n",
       "\n",
       "[5 rows x 22 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "# convert to Dataframe\n",
    "results = pd.DataFrame(grid_search.cv_results_)\n",
    "# show the first 5 rows\n",
    "display(results.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PolyCollection at 0x7fcb17fd24a8>"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "scores = np.array(results.mean_test_score).reshape(6, 6)\n",
    "\n",
    "# plot the mean cross-validation scores\n",
    "mglearn.tools.heatmap(scores, xlabel='gamma', xticklabels=param_grid['gamma'],\n",
    "                      ylabel='C', yticklabels=param_grid['C'], cmap=\"viridis\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.colorbar.Colorbar at 0x7fcb184cf940>"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 936x360 with 4 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(1, 3, figsize=(13, 5))\n",
    "\n",
    "param_grid_linear = {'C': np.linspace(1, 2, 6),\n",
    "                     'gamma':  np.linspace(1, 2, 6)}\n",
    "\n",
    "param_grid_one_log = {'C': np.linspace(1, 2, 6),\n",
    "                      'gamma':  np.logspace(-3, 2, 6)}\n",
    "\n",
    "param_grid_range = {'C': np.logspace(-3, 2, 6),\n",
    "                    'gamma':  np.logspace(-7, -2, 6)}\n",
    "\n",
    "for param_grid, ax in zip([param_grid_linear, param_grid_one_log,\n",
    "                           param_grid_range], axes):\n",
    "    grid_search = GridSearchCV(SVC(), param_grid, cv=5)\n",
    "    grid_search.fit(X_train, y_train)\n",
    "    scores = grid_search.cv_results_['mean_test_score'].reshape(6, 6)\n",
    "\n",
    "    # plot the mean cross-validation scores\n",
    "    scores_image = mglearn.tools.heatmap(\n",
    "        scores, xlabel='gamma', ylabel='C', xticklabels=param_grid['gamma'],\n",
    "        yticklabels=param_grid['C'], cmap=\"viridis\", ax=ax)\n",
    "\n",
    "plt.colorbar(scores_image, ax=axes.tolist())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "List of grids:\n",
      "[{'kernel': ['rbf'], 'C': [0.001, 0.01, 0.1, 1, 10, 100], 'gamma': [0.001, 0.01, 0.1, 1, 10, 100]}, {'kernel': ['linear'], 'C': [0.001, 0.01, 0.1, 1, 10, 100]}]\n"
     ]
    }
   ],
   "source": [
    "param_grid = [{'kernel': ['rbf'],\n",
    "               'C': [0.001, 0.01, 0.1, 1, 10, 100],\n",
    "               'gamma': [0.001, 0.01, 0.1, 1, 10, 100]},\n",
    "              {'kernel': ['linear'],\n",
    "               'C': [0.001, 0.01, 0.1, 1, 10, 100]}]\n",
    "print(\"List of grids:\\n{}\".format(param_grid))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Best parameters: {'C': 100, 'gamma': 0.01, 'kernel': 'rbf'}\n",
      "Best cross-validation score: 0.97\n"
     ]
    }
   ],
   "source": [
    "grid_search = GridSearchCV(SVC(), param_grid, cv=5,\n",
    "                          return_train_score=True)\n",
    "grid_search.fit(X_train, y_train)\n",
    "print(\"Best parameters: {}\".format(grid_search.best_params_))\n",
    "print(\"Best cross-validation score: {:.2f}\".format(grid_search.best_score_))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>...</th>\n",
       "      <th>38</th>\n",
       "      <th>39</th>\n",
       "      <th>40</th>\n",
       "      <th>41</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>mean_fit_time</th>\n",
       "      <td>0.00073</td>\n",
       "      <td>0.00071</td>\n",
       "      <td>0.00085</td>\n",
       "      <td>0.0011</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00033</td>\n",
       "      <td>0.0003</td>\n",
       "      <td>0.0003</td>\n",
       "      <td>0.00031</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std_fit_time</th>\n",
       "      <td>5.5e-05</td>\n",
       "      <td>4.3e-05</td>\n",
       "      <td>0.00028</td>\n",
       "      <td>0.00036</td>\n",
       "      <td>...</td>\n",
       "      <td>2.1e-05</td>\n",
       "      <td>9.6e-06</td>\n",
       "      <td>1.4e-05</td>\n",
       "      <td>2.5e-05</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean_score_time</th>\n",
       "      <td>0.00028</td>\n",
       "      <td>0.00027</td>\n",
       "      <td>0.00033</td>\n",
       "      <td>0.00047</td>\n",
       "      <td>...</td>\n",
       "      <td>0.00017</td>\n",
       "      <td>0.00016</td>\n",
       "      <td>0.00016</td>\n",
       "      <td>0.00016</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std_score_time</th>\n",
       "      <td>2e-05</td>\n",
       "      <td>1.2e-05</td>\n",
       "      <td>0.00013</td>\n",
       "      <td>0.00025</td>\n",
       "      <td>...</td>\n",
       "      <td>4.2e-07</td>\n",
       "      <td>2.3e-06</td>\n",
       "      <td>4.1e-06</td>\n",
       "      <td>9.9e-07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>param_C</th>\n",
       "      <td>0.001</td>\n",
       "      <td>0.001</td>\n",
       "      <td>0.001</td>\n",
       "      <td>0.001</td>\n",
       "      <td>...</td>\n",
       "      <td>0.1</td>\n",
       "      <td>1</td>\n",
       "      <td>10</td>\n",
       "      <td>100</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>param_gamma</th>\n",
       "      <td>0.001</td>\n",
       "      <td>0.01</td>\n",
       "      <td>0.1</td>\n",
       "      <td>1</td>\n",
       "      <td>...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>param_kernel</th>\n",
       "      <td>rbf</td>\n",
       "      <td>rbf</td>\n",
       "      <td>rbf</td>\n",
       "      <td>rbf</td>\n",
       "      <td>...</td>\n",
       "      <td>linear</td>\n",
       "      <td>linear</td>\n",
       "      <td>linear</td>\n",
       "      <td>linear</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>params</th>\n",
       "      <td>{'C': 0.001, 'gamma': 0.001, 'kernel': 'rbf'}</td>\n",
       "      <td>{'C': 0.001, 'gamma': 0.01, 'kernel': 'rbf'}</td>\n",
       "      <td>{'C': 0.001, 'gamma': 0.1, 'kernel': 'rbf'}</td>\n",
       "      <td>{'C': 0.001, 'gamma': 1, 'kernel': 'rbf'}</td>\n",
       "      <td>...</td>\n",
       "      <td>{'C': 0.1, 'kernel': 'linear'}</td>\n",
       "      <td>{'C': 1, 'kernel': 'linear'}</td>\n",
       "      <td>{'C': 10, 'kernel': 'linear'}</td>\n",
       "      <td>{'C': 100, 'kernel': 'linear'}</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split0_test_score</th>\n",
       "      <td>0.38</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.38</td>\n",
       "      <td>...</td>\n",
       "      <td>0.96</td>\n",
       "      <td>1</td>\n",
       "      <td>0.96</td>\n",
       "      <td>0.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split1_test_score</th>\n",
       "      <td>0.35</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.35</td>\n",
       "      <td>0.35</td>\n",
       "      <td>...</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.96</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split2_test_score</th>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split3_test_score</th>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>...</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.91</td>\n",
       "      <td>0.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split4_test_score</th>\n",
       "      <td>0.38</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.38</td>\n",
       "      <td>0.38</td>\n",
       "      <td>...</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean_test_score</th>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>...</td>\n",
       "      <td>0.95</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.96</td>\n",
       "      <td>0.96</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std_test_score</th>\n",
       "      <td>0.011</td>\n",
       "      <td>0.011</td>\n",
       "      <td>0.011</td>\n",
       "      <td>0.011</td>\n",
       "      <td>...</td>\n",
       "      <td>0.033</td>\n",
       "      <td>0.022</td>\n",
       "      <td>0.034</td>\n",
       "      <td>0.034</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>rank_test_score</th>\n",
       "      <td>27</td>\n",
       "      <td>27</td>\n",
       "      <td>27</td>\n",
       "      <td>27</td>\n",
       "      <td>...</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split0_train_score</th>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>...</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.99</td>\n",
       "      <td>0.99</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split1_train_score</th>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>...</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.99</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split2_train_score</th>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>...</td>\n",
       "      <td>0.94</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split3_train_score</th>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>...</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.99</td>\n",
       "      <td>0.99</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>split4_train_score</th>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>0.36</td>\n",
       "      <td>...</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.99</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean_train_score</th>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>0.37</td>\n",
       "      <td>...</td>\n",
       "      <td>0.97</td>\n",
       "      <td>0.98</td>\n",
       "      <td>0.99</td>\n",
       "      <td>0.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std_train_score</th>\n",
       "      <td>0.0029</td>\n",
       "      <td>0.0029</td>\n",
       "      <td>0.0029</td>\n",
       "      <td>0.0029</td>\n",
       "      <td>...</td>\n",
       "      <td>0.012</td>\n",
       "      <td>0.0055</td>\n",
       "      <td>0.007</td>\n",
       "      <td>0.0055</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>23 rows × 42 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                               0   \\\n",
       "mean_fit_time                                             0.00073   \n",
       "std_fit_time                                              5.5e-05   \n",
       "mean_score_time                                           0.00028   \n",
       "std_score_time                                              2e-05   \n",
       "param_C                                                     0.001   \n",
       "param_gamma                                                 0.001   \n",
       "param_kernel                                                  rbf   \n",
       "params              {'C': 0.001, 'gamma': 0.001, 'kernel': 'rbf'}   \n",
       "split0_test_score                                            0.38   \n",
       "split1_test_score                                            0.35   \n",
       "split2_test_score                                            0.36   \n",
       "split3_test_score                                            0.36   \n",
       "split4_test_score                                            0.38   \n",
       "mean_test_score                                              0.37   \n",
       "std_test_score                                              0.011   \n",
       "rank_test_score                                                27   \n",
       "split0_train_score                                           0.36   \n",
       "split1_train_score                                           0.37   \n",
       "split2_train_score                                           0.37   \n",
       "split3_train_score                                           0.37   \n",
       "split4_train_score                                           0.36   \n",
       "mean_train_score                                             0.37   \n",
       "std_train_score                                            0.0029   \n",
       "\n",
       "                                                              1   \\\n",
       "mean_fit_time                                            0.00071   \n",
       "std_fit_time                                             4.3e-05   \n",
       "mean_score_time                                          0.00027   \n",
       "std_score_time                                           1.2e-05   \n",
       "param_C                                                    0.001   \n",
       "param_gamma                                                 0.01   \n",
       "param_kernel                                                 rbf   \n",
       "params              {'C': 0.001, 'gamma': 0.01, 'kernel': 'rbf'}   \n",
       "split0_test_score                                           0.38   \n",
       "split1_test_score                                           0.35   \n",
       "split2_test_score                                           0.36   \n",
       "split3_test_score                                           0.36   \n",
       "split4_test_score                                           0.38   \n",
       "mean_test_score                                             0.37   \n",
       "std_test_score                                             0.011   \n",
       "rank_test_score                                               27   \n",
       "split0_train_score                                          0.36   \n",
       "split1_train_score                                          0.37   \n",
       "split2_train_score                                          0.37   \n",
       "split3_train_score                                          0.37   \n",
       "split4_train_score                                          0.36   \n",
       "mean_train_score                                            0.37   \n",
       "std_train_score                                           0.0029   \n",
       "\n",
       "                                                             2   \\\n",
       "mean_fit_time                                           0.00085   \n",
       "std_fit_time                                            0.00028   \n",
       "mean_score_time                                         0.00033   \n",
       "std_score_time                                          0.00013   \n",
       "param_C                                                   0.001   \n",
       "param_gamma                                                 0.1   \n",
       "param_kernel                                                rbf   \n",
       "params              {'C': 0.001, 'gamma': 0.1, 'kernel': 'rbf'}   \n",
       "split0_test_score                                          0.38   \n",
       "split1_test_score                                          0.35   \n",
       "split2_test_score                                          0.36   \n",
       "split3_test_score                                          0.36   \n",
       "split4_test_score                                          0.38   \n",
       "mean_test_score                                            0.37   \n",
       "std_test_score                                            0.011   \n",
       "rank_test_score                                              27   \n",
       "split0_train_score                                         0.36   \n",
       "split1_train_score                                         0.37   \n",
       "split2_train_score                                         0.37   \n",
       "split3_train_score                                         0.37   \n",
       "split4_train_score                                         0.36   \n",
       "mean_train_score                                           0.37   \n",
       "std_train_score                                          0.0029   \n",
       "\n",
       "                                                           3   \\\n",
       "mean_fit_time                                          0.0011   \n",
       "std_fit_time                                          0.00036   \n",
       "mean_score_time                                       0.00047   \n",
       "std_score_time                                        0.00025   \n",
       "param_C                                                 0.001   \n",
       "param_gamma                                                 1   \n",
       "param_kernel                                              rbf   \n",
       "params              {'C': 0.001, 'gamma': 1, 'kernel': 'rbf'}   \n",
       "split0_test_score                                        0.38   \n",
       "split1_test_score                                        0.35   \n",
       "split2_test_score                                        0.36   \n",
       "split3_test_score                                        0.36   \n",
       "split4_test_score                                        0.38   \n",
       "mean_test_score                                          0.37   \n",
       "std_test_score                                          0.011   \n",
       "rank_test_score                                            27   \n",
       "split0_train_score                                       0.36   \n",
       "split1_train_score                                       0.37   \n",
       "split2_train_score                                       0.37   \n",
       "split3_train_score                                       0.37   \n",
       "split4_train_score                                       0.36   \n",
       "mean_train_score                                         0.37   \n",
       "std_train_score                                        0.0029   \n",
       "\n",
       "                                 ...                \\\n",
       "mean_fit_time                    ...                 \n",
       "std_fit_time                     ...                 \n",
       "mean_score_time                  ...                 \n",
       "std_score_time                   ...                 \n",
       "param_C                          ...                 \n",
       "param_gamma                      ...                 \n",
       "param_kernel                     ...                 \n",
       "params                           ...                 \n",
       "split0_test_score                ...                 \n",
       "split1_test_score                ...                 \n",
       "split2_test_score                ...                 \n",
       "split3_test_score                ...                 \n",
       "split4_test_score                ...                 \n",
       "mean_test_score                  ...                 \n",
       "std_test_score                   ...                 \n",
       "rank_test_score                  ...                 \n",
       "split0_train_score               ...                 \n",
       "split1_train_score               ...                 \n",
       "split2_train_score               ...                 \n",
       "split3_train_score               ...                 \n",
       "split4_train_score               ...                 \n",
       "mean_train_score                 ...                 \n",
       "std_train_score                  ...                 \n",
       "\n",
       "                                                38  \\\n",
       "mean_fit_time                              0.00033   \n",
       "std_fit_time                               2.1e-05   \n",
       "mean_score_time                            0.00017   \n",
       "std_score_time                             4.2e-07   \n",
       "param_C                                        0.1   \n",
       "param_gamma                                    NaN   \n",
       "param_kernel                                linear   \n",
       "params              {'C': 0.1, 'kernel': 'linear'}   \n",
       "split0_test_score                             0.96   \n",
       "split1_test_score                             0.91   \n",
       "split2_test_score                                1   \n",
       "split3_test_score                             0.91   \n",
       "split4_test_score                             0.95   \n",
       "mean_test_score                               0.95   \n",
       "std_test_score                               0.033   \n",
       "rank_test_score                                 11   \n",
       "split0_train_score                            0.97   \n",
       "split1_train_score                            0.98   \n",
       "split2_train_score                            0.94   \n",
       "split3_train_score                            0.98   \n",
       "split4_train_score                            0.97   \n",
       "mean_train_score                              0.97   \n",
       "std_train_score                              0.012   \n",
       "\n",
       "                                              39  \\\n",
       "mean_fit_time                             0.0003   \n",
       "std_fit_time                             9.6e-06   \n",
       "mean_score_time                          0.00016   \n",
       "std_score_time                           2.3e-06   \n",
       "param_C                                        1   \n",
       "param_gamma                                  NaN   \n",
       "param_kernel                              linear   \n",
       "params              {'C': 1, 'kernel': 'linear'}   \n",
       "split0_test_score                              1   \n",
       "split1_test_score                           0.96   \n",
       "split2_test_score                              1   \n",
       "split3_test_score                           0.95   \n",
       "split4_test_score                           0.95   \n",
       "mean_test_score                             0.97   \n",
       "std_test_score                             0.022   \n",
       "rank_test_score                                1   \n",
       "split0_train_score                          0.99   \n",
       "split1_train_score                          0.98   \n",
       "split2_train_score                          0.98   \n",
       "split3_train_score                          0.99   \n",
       "split4_train_score                          0.99   \n",
       "mean_train_score                            0.98   \n",
       "std_train_score                           0.0055   \n",
       "\n",
       "                                               40  \\\n",
       "mean_fit_time                              0.0003   \n",
       "std_fit_time                              1.4e-05   \n",
       "mean_score_time                           0.00016   \n",
       "std_score_time                            4.1e-06   \n",
       "param_C                                        10   \n",
       "param_gamma                                   NaN   \n",
       "param_kernel                               linear   \n",
       "params              {'C': 10, 'kernel': 'linear'}   \n",
       "split0_test_score                            0.96   \n",
       "split1_test_score                               1   \n",
       "split2_test_score                               1   \n",
       "split3_test_score                            0.91   \n",
       "split4_test_score                            0.95   \n",
       "mean_test_score                              0.96   \n",
       "std_test_score                              0.034   \n",
       "rank_test_score                                 3   \n",
       "split0_train_score                           0.99   \n",
       "split1_train_score                           0.99   \n",
       "split2_train_score                           0.98   \n",
       "split3_train_score                           0.99   \n",
       "split4_train_score                              1   \n",
       "mean_train_score                             0.99   \n",
       "std_train_score                             0.007   \n",
       "\n",
       "                                                41  \n",
       "mean_fit_time                              0.00031  \n",
       "std_fit_time                               2.5e-05  \n",
       "mean_score_time                            0.00016  \n",
       "std_score_time                             9.9e-07  \n",
       "param_C                                        100  \n",
       "param_gamma                                    NaN  \n",
       "param_kernel                                linear  \n",
       "params              {'C': 100, 'kernel': 'linear'}  \n",
       "split0_test_score                             0.96  \n",
       "split1_test_score                                1  \n",
       "split2_test_score                                1  \n",
       "split3_test_score                             0.91  \n",
       "split4_test_score                             0.95  \n",
       "mean_test_score                               0.96  \n",
       "std_test_score                               0.034  \n",
       "rank_test_score                                  3  \n",
       "split0_train_score                            0.99  \n",
       "split1_train_score                            0.99  \n",
       "split2_train_score                            0.99  \n",
       "split3_train_score                               1  \n",
       "split4_train_score                               1  \n",
       "mean_train_score                              0.99  \n",
       "std_train_score                             0.0055  \n",
       "\n",
       "[23 rows x 42 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "results = pd.DataFrame(grid_search.cv_results_)\n",
    "# we display the transposed table so that it better fits on the page:\n",
    "display(results.T)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Using different cross-validation strategies with grid search"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Nested cross-validation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores:  [0.967 1.    0.967 0.967 1.   ]\n",
      "Mean cross-validation score:  0.9800000000000001\n"
     ]
    }
   ],
   "source": [
    "param_grid = {'C': [0.001, 0.01, 0.1, 1, 10, 100],\n",
    "              'gamma': [0.001, 0.01, 0.1, 1, 10, 100]}\n",
    "scores = cross_val_score(GridSearchCV(SVC(), param_grid, cv=5),\n",
    "                         iris.data, iris.target, cv=5)\n",
    "print(\"Cross-validation scores: \", scores)\n",
    "print(\"Mean cross-validation score: \", scores.mean())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def nested_cv(X, y, inner_cv, outer_cv, Classifier, parameter_grid):\n",
    "    outer_scores = []\n",
    "    # for each split of the data in the outer cross-validation\n",
    "    # (split method returns indices of training and test parts)\n",
    "    for training_samples, test_samples in outer_cv.split(X, y):\n",
    "        # find best parameter using inner cross-validation\n",
    "        best_parms = {}\n",
    "        best_score = -np.inf\n",
    "        # iterate over parameters\n",
    "        for parameters in parameter_grid:\n",
    "            # accumulate score over inner splits\n",
    "            cv_scores = []\n",
    "            # iterate over inner cross-validation\n",
    "            for inner_train, inner_test in inner_cv.split(\n",
    "                    X[training_samples], y[training_samples]):\n",
    "                # build classifier given parameters and training data\n",
    "                clf = Classifier(**parameters)\n",
    "                clf.fit(X[inner_train], y[inner_train])\n",
    "                # evaluate on inner test set\n",
    "                score = clf.score(X[inner_test], y[inner_test])\n",
    "                cv_scores.append(score)\n",
    "            # compute mean score over inner folds\n",
    "            mean_score = np.mean(cv_scores)\n",
    "            if mean_score > best_score:\n",
    "                # if better than so far, remember parameters\n",
    "                best_score = mean_score\n",
    "                best_params = parameters\n",
    "        # build classifier on best parameters using outer training set\n",
    "        clf = Classifier(**best_params)\n",
    "        clf.fit(X[training_samples], y[training_samples])\n",
    "        # evaluate\n",
    "        outer_scores.append(clf.score(X[test_samples], y[test_samples]))\n",
    "    return np.array(outer_scores)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Cross-validation scores: [0.967 1.    0.967 0.967 1.   ]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.model_selection import ParameterGrid, StratifiedKFold\n",
    "scores = nested_cv(iris.data, iris.target, StratifiedKFold(5),\n",
    "                   StratifiedKFold(5), SVC, ParameterGrid(param_grid))\n",
    "print(\"Cross-validation scores: {}\".format(scores))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Parallelizing cross-validation and grid search"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Evaluation Metrics and Scoring\n",
    "#### Keep the End Goal in Mind"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Metrics for Binary Classification\n",
    "##### Kinds of errors\n",
    "##### Imbalanced datasets"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.datasets import load_digits\n",
    "\n",
    "digits = load_digits()\n",
    "y = digits.target == 9\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    digits.data, y, random_state=0)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Unique predicted labels: [False]\n",
      "Test score: 0.90\n"
     ]
    }
   ],
   "source": [
    "from sklearn.dummy import DummyClassifier\n",
    "dummy_majority = DummyClassifier(strategy='most_frequent').fit(X_train, y_train)\n",
    "pred_most_frequent = dummy_majority.predict(X_test)\n",
    "print(\"Unique predicted labels: {}\".format(np.unique(pred_most_frequent)))\n",
    "print(\"Test score: {:.2f}\".format(dummy_majority.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Test score: 0.92\n"
     ]
    }
   ],
   "source": [
    "from sklearn.tree import DecisionTreeClassifier\n",
    "tree = DecisionTreeClassifier(max_depth=2).fit(X_train, y_train)\n",
    "pred_tree = tree.predict(X_test)\n",
    "print(\"Test score: {:.2f}\".format(tree.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "dummy score: 0.80\n",
      "logreg score: 0.98\n"
     ]
    }
   ],
   "source": [
    "from sklearn.linear_model import LogisticRegression\n",
    "\n",
    "dummy = DummyClassifier().fit(X_train, y_train)\n",
    "pred_dummy = dummy.predict(X_test)\n",
    "print(\"dummy score: {:.2f}\".format(dummy.score(X_test, y_test)))\n",
    "\n",
    "logreg = LogisticRegression(C=0.1).fit(X_train, y_train)\n",
    "pred_logreg = logreg.predict(X_test)\n",
    "print(\"logreg score: {:.2f}\".format(logreg.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Confusion matrices"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Confusion matrix:\n",
      "[[401   2]\n",
      " [  8  39]]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import confusion_matrix\n",
    "\n",
    "confusion = confusion_matrix(y_test, pred_logreg)\n",
    "print(\"Confusion matrix:\\n{}\".format(confusion))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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luiNN97Qgw8+qKDxgNu3b9dZZ52lLl266MADD6yuQ0AlMHYT6VS3bl0ddthh6tWrl0KhkDp37qz27duradOm2rp1q1avXq3PPvtMM2bM0NNPP633338/sC3nnEaNGqW2bdvqtNNOy+BRZKGKXNdkY0vHxhiyqKuvvnqn8RRm5vr27ZuRMWT33XdfwrEdPXv2dJ9++mnSdh577DHXtGnTwHa6dOniNm/enFKsr7/+eoXHr5122mnutttuYwwZkKKg96hjjz3WjR8/3q1du7ZS7b344otuzz33TPgabtasmfviiy+q6Yj8EmPIgOwzd+5c3XXXXTvtP++883TUUUdVe//ffPONrr322sDygQMHavr06dpzzz2TtnXGGWdoxowZatGiRdzyTz75RLfffnuVYw3Svn17DR06VH/60580derUH7+NT5w4UVdddVXa+wNqsyZNmuiKK67QJ598oldeeUXDhw9X8+bNK9XGwIEDNWfOHA0ePDiwzvr163XllVemGm6NxiVLIEO2bdumESNGaNu2bT/bv9tuu+mOO+7Q3XffXe0x3HLLLVqzZk3csm7dumnixImqX79+hds7+OCD9cQTT+j4449X9Ivgz/3lL3/RBRdcoF133bVK8TZp0kQnnHCCQqGQQqGQDjnkELVp06ZKbdVmxcXFklhkHBXXpEkTXX755brsssvUsmXLlNtr3ry5Jk2apP79++uNN96IW2fSpElauHCh9t5775T7q5EqchqNjS0dW22/ZPmnP/0p7qn6J554wjnn3E033VStlyy/+eYb16hRo7jtm5l79913q9z2+eefHxj7ddddl3LslREUR22+ZFn6GAAV8cYbb7gVK1ZUS9vLli0LfB/y8X6RCeKSJZA9Fi5cqD/84Q877T/++OP161//OiMxPPjgg9q0aVPcslNOOUU9evSoctu33HKLGjRoELfsvvvu0w8//FDltgFkVq9evap8VjuZX/ziF7rssssCy19++eVq6bcmICEDqplzTueff762bNnys/2NGzfWP/7xj4zF8c9//jOw7Iorrkip7bZt2+rMM8+MW/btt9/qpZdeSql9ALnj9NNPDyybP39+rf0CR0IGVLO///3veuutt3baf/PNN6tTp04ZiWHBggVasGBB3LIuXbqoZ8+eKfdxzjnnBJYx+SOAUt27d1erVq3ilm3fvr3WTgRN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ve25c+fq7LPP1ocffphyW2amESNG6J577lHDhg3TEF32IyFD1iEhQyqWLl2qgQMHpuVDIcgll1yisWPH5ty4l9IzJ7zf+5GJhEyS6tatqz/+8Y+6+uqr09bmww8/rAsuuEBbtmxJW5uSdOCBB2rKlCnafffd09puNqpoQpZb7zoActJXX32lXr16VWsyJkn33nuvioqKqrUPoLps27ZN11xzjX73u9+lpb17771X5557btqTMUmaP3+++vbtm7bLt7mAQf0Astq2bdt08skn64svvkhYr127djr77LN1+OGHa//991eLFi3UsGFDrV27VsuXL9fs2bM1depUTZ48Wdu2bQts56GHHlL37t01atSodB8K8DONGzfWoYceqoMPPlhdu3ZV165d1aFDBzVt2lTNmjVTnTp1tH79eq1Zs0YfffSR5s6dq8mTJ+v9999P2O6dd96pPffcUxdeeGGVY3v66aeTvgaaNWumU045RSeeeKL2339/7bbbbsrLy9OKFSv03//+V88//7yeeuoprVy5Mu7vL1y4UEOHDtWMGTNUv379KseaM5xzbGwZ2QoLCx1QWXfddZeTFLg1adLEjRs3zm3durVC7X355ZduyJAhCdvcZZdd3JIlS6r5yDKn9LjgxyeffOIkuXr16rl+/fq5MWPGuJKSErdt27YqtVdSUuKOPPLIpM/hzz77rErtL1682DVr1ixh++edd55bsWJF0rbWrVvnrrzySlenTp3Ati6//PIqxVlTSCpxFfiM9P4hzVZ7NhIyVNbmzZtdq1atAt/IW7Vq5RYsWFCltm+88caEHzgXXXRRmo/GHxIyv1avXu0mTJjg1q1bl9Z2b7jhhoTP4bPOOqtK7Q4ePDiwTTNzY8eOrXSbEyZMcPXq1YvbZl5enispKalSrDUBCRlb1m0kZKisCRMmJPzAmT59ekrtDxs2LLDt5s2buy1btqTpSPwiIctdl1xySeBzuEGDBm716tWVau+NN95I+JobPXp0lWN94IEHAtvt1atXldvNdhVNyBjUDyBrvfzyy4FlQ4cOVe/evVNq/4477gi89X7dunV69913U2o/WxQUFKigoMB3GKgGt956q37xi1/ELduyZYv+/e9/V6q9sWPHBpaFQiFdf/31lWqvrBEjRuiEE06IW/bmm29qxowZVW47F5CQAchac+bMCSwbPnx4yu3/8pe/1LHHHhtYPnfu3JT7yAaRSESRSMR3GKgGjRs31umnnx5Y/t5771W4rXXr1un5558PLP/jH/+ounVTuxfw1ltvDSz761//mlLbNR0JGYCslejOyr59+6alj6OPPrpK/QPZ4phjjgks++yzzyrczssvvxw44XLnzp3Vv3//SsdW3n777Rf42p0yZYq++eablPuoqUjIAGStDRs2xN3frFmztC2y3K5du0r3D2SToEuWUnTB8op65513AstOPPHEtC3NNGTIkLj7t27dqqeeeiotfdREJGQAslajRo3i7k/nupOJErug/msaM6sVi6jXVg0aNAgsq8xzONH8Zj169KhUTIkkamvKlClp66emISEDkLVatWoVd/+3336btj5WrVoVWNa6deu09QNUl6+//jqwrDLP4c8//zyw7IADDqhMSAl17949sOz1119P6zq1NQkJGYCsFfTG/f333+vLL79MSx+LFi0KLDvooIPS0gdQnRJdaqzM3bWJvpy0bNmyUjEl0rBhQ+2yyy5xyzZu3FjtS6RlKxIyAFmrT58+gWWJpsSojKBLJHl5eTryyCPT0gdQXXbs2KEJEyYElvfr16/CbW3evDmwLD8/v1JxJdOiRYvAstp6RzAJGYCsdeaZZwaOj7nnnnu0Y8eOlNp/++23NXPmzLhlp5xySsIPDSAb3HPPPVqwYEHcsj59+mifffapcFuJxhkmWv+1KhJdlky2VmeuIiEDkLV23XVXnXvuuXHLPvjgA915551Vbvu7777TRRddFLcsLy9PV199dZXbBjLh8ccf1+9+97u4ZWam0aNHV6q9RDcArF27tlJtJZOovU8//TStfdUUJGQAstptt92mDh06xC275ppr9L//+7+VbnPVqlU68cQTA7+JX3XVVcxsj6y1bNkynXPOOfrNb34TeObqiiuuqPRKFrvuumtg2YoVKyrVViLffvttwjNulZk7LZeQkAHIas2aNdPkyZPjjmFxzumiiy7SkCFDEs7qX+r777/X+PHjdcABB2j69Olx65x00km6+eabUw07q4wbN07jxo3zHQYqaceOHVq/fr2+/PJLvf766xo7dqz69++vjh076tFHH1V0mcSd/eY3v9Ftt91W6f46duwYWFZSUlLp9oIkWz0g0V2juSy1NRCQFcysj6TXJd3snBvtNxog/QoKCjRt2jQNHTpUS5cu3an8ueee03PPPafu3bvryCOP1H777aeWLVtql1120bp167R8+XLNnj1b06dPTzhlxtlnn60HHnhA9erVq87Dybji4mLfISCBzp07p+UyXd26dXX99dfrxhtvVJ06lT/f0r17d7366qtxy959910VFRWlGqIkBY7bLLVu3Tpt27Yt5WWaapyKrECerZukToquFP+w71iqGP/wWPx9UmynT6yd0R6O4eHo0yh53cLCQgekYs2aNW748OEuLy/PxZ7zadnat2/vJkyY4PvwUEvttddeKT+HBw0a5CKRSEpxTJw4MbD9/Px8t3HjxpSPdceOHa5Lly5Jj2fFihUp95UtJJW4CnxGcskyN8yW1E3S33wHAlSn/Px8jR8/Xv/5z3/0P//zPwmXjEmmbt266tu3rx588EF9+umnCRdorunC4bDC4bDvMJBmu+++u2666SYtWLBAL7zwQsrjHvv37x94dnjt2rV67LHHUmpfik5X88knnyStt3HjxpT7qmlIyHKAc26Tc+5j51zwrH5ADuncubN+/etf64wzzqjyMkp77723+vfvryOOOCLnLlGWN3LkSI0cOdJ3GEizr7/+WhMmTNADDzygjz/+OOX2mjdvrsGDBweW33DDDSkt/r1582ZdfvnlFar7ww8/VLmfmqrGJmRmNlrS4th/zzEzV2YbHqvTJ/b/0WZ2qJm9aGbfxvZ1itVxZjY9oI+Hy9YtV3aYmU0ys+Vm9oOZLTWzcWZW9a/sP7XtzGy6mbU2s7CZfW1mW8xsgZntNAdA2eMst396bH9dM7vOzD6JtbPUzG4zs/oB/e8TO/alsforzOxxM9s71WMDUrFt2zaNHz9e++67r3r16qU777yzyguAL1iwQNdee626deumE044QbNmzUpztED1W7hwocaMGaN9991XQ4YMSfkOxVGjRgWWrVy5Uuedd16V5yS79NJLtXDhwgrVrY0JWU0eMTddUr6kUZLmS/pXmbJ55er2lHStpLckPSSptaQq/7VjSdH9krZIek7SUkldJJ0v6QQz6+GcW1LV9mPyJb0di3OSpF0knSrpITPb4Zx7pBJtPS6pl6QpktZLGijpKkm7SvpZgmdmAyQ9I6mepOclLZLUTtLJkgaZWV/nXPLb2YA0W7hwoc4666ykd2hVlnNOL7zwgl588UVddtlluvXWWxMu1gyk2/333x/3Et0PP/ygNWvWaO3atfroo480e/ZsffTRR3EnRHbO6bnnntOrr76qu+++WyNGjKhSLL1791b//v31yiuvxC1/4YUXdPLJJ2vixImByx+Vt337do0cOVIPPvhgheOoyk0JNV5FBppl66Ykg/r102B3J2lkQB0naXpA2cOx8k5l9nVVNElaJOmX5eofLWm7pMkpHldpzA9Iyiuzf19J2yR9FHCco8vtnx7bH5HUssz+xrH4t0tqW2Z/C0lrJK2StG+5tvaTtEHSnKoeF4P6UVVTp051jRo1SjgIeN9993XXX3+9mzp1qvvss8/c2rVr3Q8//OBWrFjhFixY4B5++GF33nnnuSZNmiRsp0ePHm7dunW+DzmtSo8NNd+SJUvc73//e9emTZuEz+O//OUvVe5j0aJFrnHjxgnb33PPPd3TTz/tduzYkbCt1157zR144IGVvklh0aJFVY4/26iCg/q9J1WpbJVIyOYmaKOyCdmY2L5BAb8zOZY0NU3huJykjZKaxSmbEStvWmZfsoTsmDjt3BwrG1xm36jYvv8JiKv02PetxLEUSyqRVNKhQwcHVNa0adPcLrvskvCD4fnnn0/6wVBqzZo17qabbnJ169YNbLNnz55u8+bN1XxkmUNClntWrVrlfv3rXydMah544IEqt//YY49VKHHafffdXVFRkRs7dqx74okn3MSJE929997rLrnkErfHHnsE/l779u1dz549A8uXLVuWxkfLr4omZDX5kmVlzE5jWz1jP3ub2SFxyneVlKfombRUVkj9xDm3Ps7+0kmY8iV9V8G24s3oV9pO2cX6So/twPLj0WK6xn52k/RRRTp2zoUlhSUpFAq5ivwOUGrlypU644wz9P3338ctHzRokB577DE1b968wm3m5+dr9OjROu644zRkyJC4g5TfffddXXvttRozZkyVYweqU6tWrfTEE09ojz320K233hq3zqhRo9S7d2917ty50u2fccYZWr58uX77298mrPf111/r/vvvr1TbzZo10zPPPKNLL700sE6rVq0q1WYuqC0J2fI0tlX6LIm/gNhPqnbr10+CFvoqHU2ZV9GGnHPx2orXTumxJZv9L9VjAyrk4osv1sqVK+OW9ejRQ5MmTarwOJbyevbsqWeffVZHH3103ITv7rvv1rBhw3TooYdWqX0gE/785z/ryy+/1D//+c+dyjZu3KjrrrtOEydOrFLbV1xxhVq2bKkLL7ww8EtRZbVu3VovvPCCQqFQ4Gu7ZcuWtXIcZ20ZNZfozIxTcGK681ot0rrYz+bOOUuwzUgpYj9Kj+3AJMdWmRsKgCr573//q6effjpuWf369fXEE09UORkr1bNnT/3+97+PW+ac0x133JFS+9nC/TSEADnorrvuCjxL/Mwzz2jx4sVVbnv48OGaPXu2evToUeU2SvXp00dz5szRYYcdph07dsRddUOSfvnLX6bcV01U0xOy7bGfFT5bFMcaSe3L7zSzPEkHxalfuuZDrxT6zFa5fGyoYe677764d5NJ0ogRI9SpU6e09DNq1Ci1bt06btnkyZMDv8UD2aJNmzaBd1Vu375d//rXv+KWVdQBBxygd955R88884yOOuoomVmlfv/ggw/Wk08+qddff13t20c/br/88svAqS26deuWUrw1VU1PyNYoeoarQwptzJbUwcz6l9t/g6SOcer/TdJWSWPMrGv5QjOrb2Y1NaEZr+il0pvMbKfrNGZWJ7ZuJlDtpk2bFliWzln1GzdurEGDBsUt2759u2bMqIknu1HbnHDCCYFl6XgOm5mGDh2qGTNmaMmSJRo3bpzOPfdcHXbYYdp9993VsGFD1alTR40bN1aHDh103HHH6aabbtJ7772nOXPm6Fe/+tXP2ps/f35gX/vvv3/K8dZENXoMmXNug5nNktTLzB6T9F9Fz5o955x7v4LN3CnpOEnPmtmTkr6VdLikPRS9S7FPuT4/NrPzFJ3PbIGZvRzrt56iiWEvSd9I2ie1o8s859xqMztV0TtFZ5rZq5IWSNqh6LH1VHScWWrXiYAk1q9frw8//DBuWcOGDXX44Yentb9jjjlGjzwS/0r8zJkzddppp6W1v0wrLCyUJEUiqdxnhGx22GGHBZYtWLAgrX21a9dOxcXFKS1aP2dO8HSWoVCoyu3WZDU6IYs5S9HpGAZIGibJJH0pqUIJmXPuVTM7SdKNkn6t6HQT/5Z0uqJTQ8T7nf8zs/mSfiupr6T+sd/7StFJXJ9M4Xi8ij0e3SVdqWii2kvRede+kvSapPiDeoA0Wr58eeCYp1/+8pdpX+oo0eXPr7/+Oq19+ZDoww+5oWHDhmratKm++27nm+9Xr17tIaLEpk+fHnd/3bp1deSRR2Y2mCxR4xMy59wiSXHP1TrnpiuaoCVr4zlFZ9wvb3hsi/c7HwSVpco5Fxizc26nmIKO0znXJ0E7Dys6z1q8ss8lXZw0UKCaJPoACRrvlYo2bdpUKRYgmzRu3DhuQrZ+fbwZlPz57rvv9O6778YtO/TQQ9W0adMMR5QdavoYMgA5KNEdgVu3bk17f1u2bAksq+wAZsAH51zgl4dGjRplOJrEnn/++cDXXE0fHpAKEjIAWSfRN+R4E7mmKlGbTZow7R6y36pVqwK/rGTbJKtBE8nWqVMnrTfs1DQkZACyTqJ5iJYtW6a1a4PmTa6aoBsIJP14mz6QzV577bXAsi5dumQwksTmzp0bOH5s6NCh2n333TMbUBYhIQOQdVq2bBk4Vmz79u169dVX09rf1KlTA8v23nvvtPYFVIdEc41l02oT11xzTWDZlVdemcFIsg8JGYCs1LNnz8Cy++67L239LFq0SP/+97+rFEdNUVRUpKKiZCuioaZ6//339dRTTwWW9+9ffppNPx599FG98sorccsGDhyYltUAajISMgBZafDgwYFl06ZNC3xjr6xrrrlG27Zti1vWvn17de/ePS39+BQOhxUOh32HgWqwZcsWXXDBBdq+fXvc8k6dOqlXL/9zlc+bN08XXxz/5v169eppzJgxGY4o+5CQAchKp556asK7w8444wwtWrQopT5uvfXWwPUyJenss8/mLkukZOzYsZo9e3a1tL1lyxYNHTo0cAoJSfrtb3/r/Tk8d+5cDRgwIO6UHJJ04403qmvXnRa+qXVIyABkpZYtW2rkyJGB5atXr1afPn301ltvVbrtbdu26dprr9X1118fWKdx48a69NJLK912NopEIszS78n06dN12GGHafDgwXrrrbfStsj7zJkzddhhh2nKlCmBdbp161bl2fRHjx6tRx99NOGUMMk453T//ffrqKOO0ooVK+LW6d27t6677roq95FTnHNsbBnZCgsLHVAZa9ascW3btnWKrlkbd6tbt6674IIL3CeffJK0ve3bt7unn37aFRQUJGxTkrvzzjszcISZUXpMyLwhQ4b87HnVrl07d9lll7m33nrLbd68uVJtbdmyxU2ePNkNHTrUmVnC52+DBg1cJBJJOe42bdq4Cy+80L388stuy5YtFfrd77//3k2cONEVFhYmjLFLly5u5cqVVY6xppBU4irwGWnRukD1C4VCrqSkxHcYqGFef/119e/fP3Cc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\n",
      "text/plain": [
       "<Figure size 576x576 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_confusion_matrix_illustration()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_binary_confusion_matrix()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Most frequent class:\n",
      "[[403   0]\n",
      " [ 47   0]]\n",
      "\n",
      "Dummy model:\n",
      "[[366  37]\n",
      " [ 43   4]]\n",
      "\n",
      "Decision tree:\n",
      "[[390  13]\n",
      " [ 24  23]]\n",
      "\n",
      "Logistic Regression\n",
      "[[401   2]\n",
      " [  8  39]]\n"
     ]
    }
   ],
   "source": [
    "print(\"Most frequent class:\")\n",
    "print(confusion_matrix(y_test, pred_most_frequent))\n",
    "print(\"\\nDummy model:\")\n",
    "print(confusion_matrix(y_test, pred_dummy))\n",
    "print(\"\\nDecision tree:\")\n",
    "print(confusion_matrix(y_test, pred_tree))\n",
    "print(\"\\nLogistic Regression\")\n",
    "print(confusion_matrix(y_test, pred_logreg))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "###### Relation to accuracy\n",
    "\\begin{equation}\n",
    "\\text{Accuracy} = \\frac{\\text{TP} + \\text{TN}}{\\text{TP} + \\text{TN} + \\text{FP} + \\text{FN}}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Precision, recall and f-score\n",
    "\\begin{equation}\n",
    "\\text{Precision} = \\frac{\\text{TP}}{\\text{TP} + \\text{FP}}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "hide_input": false
   },
   "source": [
    "\\begin{equation}\n",
    "\\text{Recall} = \\frac{\\text{TP}}{\\text{TP} + \\text{FN}}\n",
    "\\end{equation}\n",
    "\\begin{equation}\n",
    "\\text{F} = 2 \\cdot \\frac{\\text{precision} \\cdot \\text{recall}}{\\text{precision} + \\text{recall}}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "f1 score most frequent: 0.00\n",
      "f1 score dummy: 0.09\n",
      "f1 score tree: 0.55\n",
      "f1 score logistic regression: 0.89\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/andy/checkout/scikit-learn/sklearn/metrics/classification.py:1143: UndefinedMetricWarning: F-score is ill-defined and being set to 0.0 due to no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import f1_score\n",
    "print(\"f1 score most frequent: {:.2f}\".format(\n",
    "    f1_score(y_test, pred_most_frequent)))\n",
    "print(\"f1 score dummy: {:.2f}\".format(f1_score(y_test, pred_dummy)))\n",
    "print(\"f1 score tree: {:.2f}\".format(f1_score(y_test, pred_tree)))\n",
    "print(\"f1 score logistic regression: {:.2f}\".format(\n",
    "    f1_score(y_test, pred_logreg)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "    not nine       0.90      1.00      0.94       403\n",
      "        nine       0.00      0.00      0.00        47\n",
      "\n",
      "   micro avg       0.90      0.90      0.90       450\n",
      "   macro avg       0.45      0.50      0.47       450\n",
      "weighted avg       0.80      0.90      0.85       450\n",
      "\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/home/andy/checkout/scikit-learn/sklearn/metrics/classification.py:1143: UndefinedMetricWarning: Precision and F-score are ill-defined and being set to 0.0 in labels with no predicted samples.\n",
      "  'precision', 'predicted', average, warn_for)\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import classification_report\n",
    "print(classification_report(y_test, pred_most_frequent,\n",
    "                            target_names=[\"not nine\", \"nine\"]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "    not nine       0.89      0.91      0.90       403\n",
      "        nine       0.10      0.09      0.09        47\n",
      "\n",
      "   micro avg       0.82      0.82      0.82       450\n",
      "   macro avg       0.50      0.50      0.50       450\n",
      "weighted avg       0.81      0.82      0.82       450\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test, pred_dummy,\n",
    "                            target_names=[\"not nine\", \"nine\"]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "    not nine       0.98      1.00      0.99       403\n",
      "        nine       0.95      0.83      0.89        47\n",
      "\n",
      "   micro avg       0.98      0.98      0.98       450\n",
      "   macro avg       0.97      0.91      0.94       450\n",
      "weighted avg       0.98      0.98      0.98       450\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test, pred_logreg,\n",
    "                            target_names=[\"not nine\", \"nine\"]))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Taking uncertainty into account"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "X, y = make_blobs(n_samples=(400, 50), cluster_std=[7.0, 2],\n",
    "                  random_state=22)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)\n",
    "svc = SVC(gamma=.05).fit(X_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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85/jf/uNMXvPYf3yhcmPER2X8rnwMaK/uQ5RInMcGCAaijTboS6z2rfxvItfIjp+J4iO79FptvsXRDcueIpo4vnX4vdkCVDsmaDYs/Riz+T1+4D3EJ0Dg8C1nJm/hzHmz40xfx4vO0J0l8JfiZd9gih+/d5sy1sM5buJiIiIiIiISI2oR0tERERERKTGlGiJiIiIiIjUmBItERERERGRGlOiJSIiIiIiUmNKtERERERERGpspieJi4g0vJaWLrtiRbWH1MtyscrN1rsKE/qC5npX4bxw+PDTp621q+pdj/lSfFqaGinm1Jpi2PzNNj4p0RKRJW/FivV84hP/Vu9qyAL6hZZH612FCX85dl29q3Be+MhHthyqdx1qQfFpaWqkmFNrimHzN9v4pKGDIiIiIiIiNaZES0REREREpMaUaImIiIiIiNSY5miJLCN79uzp9jzvNuB1nN2QEgJP+77/oauvvrq3PrUTEREROX8o0RJZRjzPu23NmjWXrFq1atBxHFt+PwxD09fXd+nJkydvA95VxyqKiIiInBc0dFBkeXndqlWrRiqTLADHceyqVauGiXq6RERERGSBKdESWV6cyUlWxQcW/Z8XERERWRS66BIREREREakxJVoiIiIiIiI1pkRLZHkJwzA0U3xgiO4+KCIiIiILTImWyPLydF9fX/vkZCu+62A78HSd6iUiIiJyXtHt3UWWEd/3P3Ty5MnbTp48OeVztOpUNREREZHzihItkWUkfhixnpMlIiIiUmcaOigiIiIiIlJjSrRERERERERqTImWiIiIiIhIjSnREhERERERqTElWiIiIiIiIjWmREtERERERKTGlGiJiIiIiIjUmBItERERERGRGlOiJSIiIiIiUmNKtERERERERGpMiZaIiIiIiEiNKdESERERERGpMSVaIiIiIiIiNaZES0REREREpMaUaImIiIiIiNSYEi0REREREZEaU6IlIiIiIiJSY0q0REREREREakyJloiIiIiISI0p0RIREREREakxJVoiIiIiIiI15tW7AiIiIgspm89zuL+fXLFIZ3MzF3Z317tKIiJYaznY18fI+DilIODKTZvwXLfe1ZIaUqIlIiLL1jNHj/Km3/s9+kZGJt77o1tu4aNvf3sdayUi57swDPmZL3yBf3rssYn3tm/ezDc/+Ula0uk61kxqSUMHRURkWRrK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\n",
      "text/plain": [
       "<Figure size 1080x576 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "mglearn.plots.plot_decision_threshold()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       0.97      0.89      0.93       104\n",
      "           1       0.35      0.67      0.46         9\n",
      "\n",
      "   micro avg       0.88      0.88      0.88       113\n",
      "   macro avg       0.66      0.78      0.70       113\n",
      "weighted avg       0.92      0.88      0.89       113\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test, svc.predict(X_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "y_pred_lower_threshold = svc.decision_function(X_test) > -.8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      0.82      0.90       104\n",
      "           1       0.32      1.00      0.49         9\n",
      "\n",
      "   micro avg       0.83      0.83      0.83       113\n",
      "   macro avg       0.66      0.91      0.69       113\n",
      "weighted avg       0.95      0.83      0.87       113\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test, y_pred_lower_threshold))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Precision-Recall curves and ROC curves"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from sklearn.metrics import precision_recall_curve\n",
    "precision, recall, thresholds = precision_recall_curve(\n",
    "    y_test, svc.decision_function(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fcb17f90e10>"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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L/ic1atXdy77+voWqnOvVasWAHl5edSrV49ffvnljM+//fbbrF69mgULFtC5c2dnmeKOq1psE+MZXOmCmZaWxk033cS0adNo1sxRlayqzJ0794ykunr1aufPcrpcVVJlxz66445WJCUNYvv2AWzfPoDQUMdfGq+88ht9+y7xcHTGlG7w4MH4+PgQExNDUlJSsWUSExOZP38+Pj4+5/yXbWBgICdPnjznuOrUqUOrVq2YPXs24Lip/vrrrwDs3LmTqKgopkyZQlBQ0FnbOaKiovjhhx84cuQIubm5zJw5kyuuuKJQmb59+zJv3jxOnTrFyZMn+fLLL4s91h133MEdd9xBnz59nNuuu+46pk6d6rzpr1+/vtjP9u3bl1mzZpGbm8vhw4dZtmwZPXr0cP2CeJkqmxQAmjevQXh4IOHhgUyceDEXXxwIwPr1KWRl5Xk4OmPOLjQ0lKFDh5KdnU10dPQZN9jExESGDBlCTk4OQ4cOPecX2Ro2bEivXr2IiIhwNjS76uOPP+a9996jU6dOtG/f3tmIO3HiRGfDcd++fenUqVOJx2jatCnPPfccV155JZ06daJr165ER0cXKtO1a1dGjhxJ586dGTZsWKGb/ml79uxhzpw5TJ8+3dnYHBsby+OPP052djYdO3YkIiKCxx9/vNg4hg4dSseOHenUqRNXXXUVL7zwAsHBwed0PbyJeNujUWRkpLprkp1vvtnPwIE/ArB6dX969GjglvMY44qtW7dyySWXnLXM6fcUdu3ahZ+fH9HR0bRt25bt27czf/58cnJyaN26NStXrqRJkyblFLnxtOJ+d0RkrapGlvZZqzgvoH//3//TREUtplYt32LLBQT48s473Rg2rEWx+40pL8HBwaxYsYLx48czb9485s6d69zn4+PDsGHDeOONNywhGJdZUiigWjUfevRowM8/O0bnSEsr/iWctLRcHnlkIwXbtwID/bnqqsb4+trgZaZ8BQcHM2fOHBITE4mJieHYsWPUr1+fwYMH29hH5pxZUijip5+uIj295Dcyb755FQsW7GfHjlSGDfup0L633urKn/98kbtDNKZYISEh5/XmsjEFWVIowsdHztod9aGH2lKjhi+5ub+3xSxadJCTJ3O49951/O9/5T+EhioEBwfw7393omZN+yc1xpw/u4Oco379GtOvX+NC2y67bDGrVzuqnObP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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Use more data points for a smoother curve\n",
    "X, y = make_blobs(n_samples=(4000, 500), cluster_std=[7.0, 2], random_state=22)\n",
    "X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)\n",
    "svc = SVC(gamma=.05).fit(X_train, y_train)\n",
    "precision, recall, thresholds = precision_recall_curve(\n",
    "    y_test, svc.decision_function(X_test))\n",
    "# find threshold closest to zero\n",
    "close_zero = np.argmin(np.abs(thresholds))\n",
    "plt.plot(precision[close_zero], recall[close_zero], 'o', markersize=10,\n",
    "         label=\"threshold zero\", fillstyle=\"none\", c='k', mew=2)\n",
    "\n",
    "plt.plot(precision, recall, label=\"precision recall curve\")\n",
    "plt.xlabel(\"Precision\")\n",
    "plt.ylabel(\"Recall\")\n",
    "plt.legend(loc=\"best\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fcb18404240>"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.ensemble import RandomForestClassifier\n",
    "\n",
    "rf = RandomForestClassifier(n_estimators=100, random_state=0, max_features=2)\n",
    "rf.fit(X_train, y_train)\n",
    "\n",
    "# RandomForestClassifier has predict_proba, but not decision_function\n",
    "precision_rf, recall_rf, thresholds_rf = precision_recall_curve(\n",
    "    y_test, rf.predict_proba(X_test)[:, 1])\n",
    "\n",
    "plt.plot(precision, recall, label=\"svc\")\n",
    "\n",
    "plt.plot(precision[close_zero], recall[close_zero], 'o', markersize=10,\n",
    "         label=\"threshold zero svc\", fillstyle=\"none\", c='k', mew=2)\n",
    "\n",
    "plt.plot(precision_rf, recall_rf, label=\"rf\")\n",
    "\n",
    "close_default_rf = np.argmin(np.abs(thresholds_rf - 0.5))\n",
    "plt.plot(precision_rf[close_default_rf], recall_rf[close_default_rf], '^', c='k',\n",
    "         markersize=10, label=\"threshold 0.5 rf\", fillstyle=\"none\", mew=2)\n",
    "plt.xlabel(\"Precision\")\n",
    "plt.ylabel(\"Recall\")\n",
    "plt.legend(loc=\"best\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "f1_score of random forest: 0.610\n",
      "f1_score of svc: 0.656\n"
     ]
    }
   ],
   "source": [
    "print(\"f1_score of random forest: {:.3f}\".format(\n",
    "    f1_score(y_test, rf.predict(X_test))))\n",
    "print(\"f1_score of svc: {:.3f}\".format(f1_score(y_test, svc.predict(X_test))))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Average precision of random forest: 0.660\n",
      "Average precision of svc: 0.666\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import average_precision_score\n",
    "ap_rf = average_precision_score(y_test, rf.predict_proba(X_test)[:, 1])\n",
    "ap_svc = average_precision_score(y_test, svc.decision_function(X_test))\n",
    "print(\"Average precision of random forest: {:.3f}\".format(ap_rf))\n",
    "print(\"Average precision of svc: {:.3f}\".format(ap_svc))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "##### Receiver Operating Characteristics (ROC) and AUC\n",
    "\\begin{equation}\n",
    "\\text{FPR} = \\frac{\\text{FP}}{\\text{FP} + \\text{TN}}\n",
    "\\end{equation}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fcb180db978>"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYUAAAEKCAYAAAD9xUlFAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzt3X90VOW97/H3l4AFFQWBiiXBBC+gECBARF0oij8paiINKmjvrdajXaemtqctx1/X6qG1tWp/HAXrsfVHa1tRwsKkR1q5tSooVQkL8AAKYlQSEEEEChZqQr73j5nsDknITJLZM8zk81qLtWb2PLPnuwnkM8/z7P1sc3dEREQAuqW7ABEROXwoFEREJKBQEBGRgEJBREQCCgUREQkoFEREJKBQEBGRgEJBREQCCgUREQl0T3cB7dW/f3/Pz89PdxkiIhllxYoVH7v7gHjtMi4U8vPzqa6uTncZIiIZxcw+SKSdho9ERCSgUBARkYBCQUREAgoFEREJKBRERCQQWiiY2WNmts3M1hzidTOzB8xso5m9aWbjwqpFREQSE2ZP4QlgShuvfxEYGv1zA/CLEGsREZEEhHadgrsvMbP8NpqUAr/xyP1AXzOzPmZ2grt/GFZNIiKHk4svXsqiRVvb9R73y0OqJiKdcwqDgNqY53XRbS2Y2Q1mVm1m1du3b09JcSIiYWtvIKRCOq9otla2eWsN3f0R4BGA4uLiVtuIiBwu2tsDCPvbf3uks6dQB+TFPM8FtqSpFhGRpGlPIEydOjDEStovnT2FKqDczOYBpwG7NZ8gImHpyPh9Zx1OPYBEhRYKZvYUcA7Q38zqgDuBHgDu/jCwCJgKbAT+DlwbVi0icnhLxy/ssB1uPYBEhXn20cw4rztwY1ifLyKZI1WBMHXqQJ577qyUfFamyrils0UkMxyOp1tKfAoFEUmKzg4BZepwS7ZRKIhIUrQWCBquyTwKBZEMkgkTshoCymxaJVUkgxzugaAhoMynnoJICiT7G76+jUtYFAoSikwY5shU+jYuYVIoSCgUCC1p0lUygUJBOiTRnoCGOUQyiyaapUMSCQQNc4hkHvUUuoAwx/fVExDJLgqFLJSqSV71BESyj0IhC+nKUhHpKIVCiNJ9WqaGdkSkvTTRHKJ0BoKGdkSkI9RTSAF9YxeRTKGeQkguvnhpuksQEWk3hUJImoaONIwjIplEoRAynfEjIplEoRACDR2JSKZSKIRAQ0cikqkUCkl08cVLMZsfPNfQkYhkGoVCEsVel6BegohkIl2nkCSx8wi6LkFEMpV6CkkQu5yFeggikskUCkkQGwiaRxCRTKZQ6ARNLItItlEodIImlkUk22iiuYM0sSwi2Ug9hQ7SxLKIZKNQQ8HMppjZejPbaGa3tPL6YDN70cxWmtmbZjY1zHrCoHkEEckmoYWCmeUAc4EvAiOAmWY2olmz/ws84+5jgRnAQ2HVk0xa20hEslWYPYUJwEZ3r3H3z4B5QGmzNg4cE318LLAlxHqSRkNHIpKtwpxoHgTUxjyvA05r1uYuYLGZfQM4Cjg/xHqSTkNHIpJtwuwpWCvbvNnzmcAT7p4LTAWeNLMWNZnZDWZWbWbV27dvD6HUxGnoSESyWZihUAfkxTzPpeXw0HXAMwDu/legJ9C/+Y7c/RF3L3b34gEDBoRUbmI0dCQi2SzMUFgODDWzAjM7gshEclWzNpuA8wDM7BQioZDerkCCNHQkItkotFBw9wagHHgeeIvIWUZrzWy2mZVEm30HuN7MVgNPAde4e/MhJhERSZFQr2h290XAombbvhfzeB0wMcwaREQkcbqiWUREAgoFEREJKBRERCSgUBARkYBCQUREAgoFEREJKBRERCSgUGgHrXskItlOodAOWvdIRLKdQqEDtO6RiGQrhUKCNHQkIl2BQiFBGjoSka5AodBOGjoSkWymUEiAho5EpKtQKCRAQ0ci0lWEej+FTLZp0yaqqqrYtWsX8B5QzHPPXZ7uskREQqVQaGbr1q2Ul5ezcOFCGhsbY155nOnTX2DOnDkMHKgeg4hkJw0fxdi6dSsTJ05kwYIF5OTkUFZWxm233QacBnRjwYIFTJw4kY8++ijdpYqIhEKhEKO8vJyamhrGjRtHTU0NFRUVrFo1hcitpOcE22+88cZ0lyoiEgpz93TX0C7FxcVeXV2d9P1u2rSJgoICcnJyqKmpITc3FwCz+UBkkvnhh/MZMmQIjY2NvP/+++Tl5SW9DhGRMJjZCncvjtdOPYWoqqoqGhsbKSkpCQIh9lTU5547i7y8PEpLS2lsbKSqqipdpYqIhEahEBU5ywiGDx8ebGvtVNRhw4YBsHPnzhRWJyKSGgqFqD59+gCwfv36Fq/FXsW8YcMGAPr27ZuawkREUkihEFVSUkK3bt2oqqqirq6u1Ta1tbVUVlbSrVs3SkpKUlyhiEj4FApRgwcPZtq0adTX11NaWkptbe1Br9fW1nLZZZfR0NDAtGnTNMksIllJZx/FaLpOoaamhu7du9PQMB44gbKyHCorK2loaGDIkCEsW7aM448/PpQaRETCoLOPOmDgwIG8+uqrlJWV0dDQCLwOPMuCBQtobGykrKxMgSAiWS2hZS7MrBg4C/gCsA9YA/zZ3T8Jsba0GDhwIBUVFZj9Aqhm2DDjppvGUlJSoiEjEcl6bYaCmV0D3ERkRbgVwHqgJ3AmcLOZrQHucPdNIdeZBv2BKaxfr0XwRKTriNdTOAqY6O77WnvRzIqAoUAWhoKISNfTZii4+9w4r69KbjkiIpJO8YaPHmjrdXe/Kc77pwD/CeQAv3L3e1ppcwVwF+DAane/Kk7NIiISknjDRys6umMzywHmAhcAdcByM6ty93UxbYYCtxIZotppZp/v6OeJiEjnxRs++nUn9j0B2OjuNQBmNg8oBdbFtLkemOvuO6Oft60TnyciIp0Ub/joD0SGdVrl7m2t9TAIiL0suI7I3WpiDYt+zqtEhpjucvc/tVLHDcANELnyWEREwhFv+Oj+TuzbWtnWPGC6Ezl76RwgF1hqZoXuvuugN7k/AjwCkSuaO1GTiIi0Id7w0cud2HcdEHu1Vy6wpZU2r7l7PfCema0nEhLLO/G5IiLSQQktc2FmQ82swszWmVlN0584b1sODDWzAjM7ApgBNL8zzbPA5Ohn9CcynBRvvyIiEpJE1z56HPgF0EDkl/hvgCfbeoO7NwDlwPPAW8Az7r7WzGabWdNcxPPADjNbB7wIzHL3He0/jOSKveOaiEhXktAqqdHV9cab2f+4+6jotqXufla89yZbmKukNom9L3PsDXZERDJVoqukJrQgHrDfzLoB75hZObAZyPprChQIItLVJDp89C3gSCKL440Hvgx8JayiREQkPRLqKbh709lAe4FrwytHRETSKdGzj/6fmfWJed7XzJ4PrywREUmHRIeP+sdeUBZdliLr5xRERLqaREOh0cyC9SXM7ETaWP5CREQyU6JnH90OvGJmTVc4TyK6FlG20TUKItKVJTrR/CczGwecTmRNo39z949DrSxNFi3aCkSuURAR6WoSnWg2YAowzt3/ABxpZhNCrSzNdI2CiHRFic4pPAScAcyMPt9D5AY6IiKSRRKdUzjN3ceZ2UqInH0UXeRORESySKI9hfro7TUdwMwGAI2hVSUiImmRaCg8ACwEPm9mdwOvAD8Mrao0uPjipcFCeCIiXVWiZx/9zsxWAOcROfvoMnd/K9TKUqzprCPQmUci0nXFDYXo6qhvunsh8Hb4JaVe7LUJ7pensRIRkfSKO3zk7o3A6tgrmrONrk0QEYlI9OyjE4C1ZvYG8GnTRncvOfRbMo+uTRCRri7RUPiPUKsQEZHDQpuhYGbmES/Ha5P80kREJNXizSm8aGbfaD6fYGZHmNm5ZvZrMvwObFoAT0Tkn+INH00Bvgo8ZWYFwC6gJ5ADLAZ+5u6rwi0xXJpkFhH5pzZDwd33E1n36CEz6wH0B/bF3nAnW2iSWUQk8Ylm3L0e+DDEWkREJM0SXeZCRES6gC4dCppkFhE5WIdCwcxyzOzqZBeTappkFhE5WJuhYGbHmNmtZjbHzC60iG8ANcAVqSkxfJpkFhGJiDfR/CSwE/gr8C/ALOAIoDTTT0UVEZGW4oXCEHcfBWBmvwI+Bga7+57QKxMRkZSLN6dQ3/TA3Q8A7ykQRESyV7xQGGNmfzOzPWa2Bxgd8/xv8XZuZlPMbL2ZbTSzW9poN93M3MyK23sAIiKSPPGuaM7p6I6j93SeC1wA1AHLzazK3dc1a9cbuAl4vaOfJSIiyRHv7KOeZvat6NlHN5hZwldAAxOAje5e4+6fAfOA0lbafR+4F9jfjn2LiEgI4g0f/RooBv4HmAr8pB37HgTUxjyvi24LmNlYIM/d/7sd+xURkZDE++Y/Iubso0eBN9qxb2tlW3Dfhei9n38GXBN3R2Y3ADcADB6ctXcFFRFJu/acfdTQzn3XAXkxz3OBLTHPewOFwEtm9j5wOlDV2mSzuz/i7sXuXjxgwIB2ltE6LXEhItJSvJ5CUcxZRgb0ij43wN39mDbeuxwYGr0Pw2ZgBnBV04vuvpvIUtyRnZu9BHzX3avbfRQdoCUuRERaihcKq919bEd27O4NZlYOPE/kpjyPuftaM5sNVLt7VUf2m2xa4kJE5J/ihUKn7r3s7ouARc22fe8Qbc/pzGeJiEjnxQuFz5vZtw/1orv/NMn1iIhIGsULhRzgaFo/k0hERLJMvFD40N1np6QSERFJu3inpKqHICLShcQLhfNSUoWIiBwW2gwFd/8kVYWIiEj6degezSIikp0UCiIiEuiSoaB1j0REWtclQ0HrHomItK5LhkITrXskInKwLh0KIiJyMIWCiIgEFAoiIhJQKIiISEChICIiAYWCiIgEFAoiIhJQKIiISEChICIiAYWCiIgEFAoiIhJQKIiISEChICIiAYWCiIgEFAoiIhJQKIiISKDLhYJuxSkicmhdLhR0K04RkUPrcqHQRLfiFBFpqcuGgoiItBRqKJjZFDNbb2YbzeyWVl7/tpmtM7M3zewFMzsxzHpERKRtoYWCmeUAc4EvAiOAmWY2olmzlUCxu48GKoB7w6pHRETiC7OnMAHY6O417v4ZMA8ojW3g7i+6+9+jT18DckOsR0RE4ggzFAYBtTHP66LbDuU64I+tvWBmN5hZtZlVb9++PYkliohIrDBDwVrZ5q02NPsyUAzc19rr7v6Iuxe7e/GAAQOSWKKIiMTqHuK+64C8mOe5wJbmjczsfOB24Gx3/0eI9YiISBxh9hSWA0PNrMDMjgBmAFWxDcxsLPBfQIm7bwuxFhERSUBooeDuDUA58DzwFvCMu681s9lmVhJtdh9wNDDfzFaZWdUhdiciIikQ5vAR7r4IWNRs2/diHp8f5ueLiEj76IpmEREJKBRERCSgUBARkYBCQUREAl0qFHSDHRGRtnWpUNANdkRE2hbqKamHK91gR6R96uvrqaurY//+/ekuReLo2bMnubm59OjRo0Pv75KhICLtU1dXR+/evcnPz8estWXN5HDg7uzYsYO6ujoKCgo6tI8uNXwkIh2zf/9++vXrp0A4zJkZ/fr161SPTqEgIglRIGSGzv6cFAoikhFycnIoKiqisLCQSy+9lF27dgWvrV27lnPPPZdhw4YxdOhQvv/97+P+z5X6//jHP1JcXMwpp5zCySefzHe/+91WPyPRdtlMoSAiGaFXr16sWrWKNWvWcNxxxzF37lwA9u3bR0lJCbfccgsbNmxg9erVLFu2jIceegiANWvWUF5ezm9/+1veeust1qxZw5AhQ1rsP9F2h3LgwIHkHGiaKRREJOOcccYZbN68GYDf//73TJw4kQsvvBCAI488kjlz5nDPPfcAcO+993L77bdz8sknA9C9e3e+/vWvt9hnW+2uueYaKioqgrZHH300AC+99BKTJ0/mqquuYtSoUdx8881BGAHcdddd/OQnPwHgvvvu49RTT2X06NHceeedSf37SCadfSQi7WI2P5T9ul+eULsDBw7wwgsvcN111wGRoaPx48cf1Oakk05i7969/O1vf2PNmjV85zvfibvfRNs198Ybb7BmzRoKCgpYuXIl3/rWt4IweeaZZ/jTn/7E4sWLeeedd3jjjTdwd0pKSliyZAmTJk1q9+eFTT0FEckI+/bto6ioiH79+vHJJ59wwQUXAJHTMA81uZqKyfEJEyYEp3+OHTuWbdu2sWXLFlavXk3fvn0ZPHgwixcvZvHixYwdO5Zx48bx9ttv884774ReW0eopyAi7ZLoN/pka5pT2L17N5dccglz587lpptuYuTIkSxZsuSgtjU1NRx99NH07t2bkSNHsmLFCsaMGdPm/ttq1717dxobG4FICH322WfBa0cdddRBbadPn05FRQVbt25lxowZwXtuvfVWvva1r3Xo2FNJPQURySjHHnssDzzwAPfffz/19fVcffXVvPLKK/z5z38GIj2Km266iX//938HYNasWfzwhz9kw4YNADQ2NvLTn/60xX7bapefn8+KFSsAqKyspL6+/pD1zZgxg3nz5lFRUcH06dMBuOiii3jsscfYu3cvAJs3b2bbtsPzDsQKBRHJOGPHjmXMmDHMmzePXr16UVlZyQ9+8AOGDx/OqFGjOPXUUykvLwdg9OjR/PznP2fmzJmccsopFBYW8uGHH7bYZ1vtrr/+el5++WUmTJjA66+/3qJ3EGvkyJHs2bOHQYMGccIJJwBw4YUXctVVV3HGGWcwatQopk+fzp49e0L4m+k8iz2XNxMUFxd7dXV1h97bNEGWru6vSKZ66623OOWUU9JdhiSotZ+Xma1w9+J471VPQUREAgoFEREJKBRERCSgUBARkYCuUxCRpNu0aRNVVVXs2rWLPn36UFpaSl5eXrrLkgQoFEQkabZu3Up5eTkLFy4MLvYC+OY3v8m0adOYM2cOAwfqdriHMw0fiUhSbN26lYkTJ7JgwQJycnIoKyvjtttuo6ysjG7durFgwQImTpzIRx991O5979q166CF5l566SUuueSSZJYPwBNPPBFc35Co/Px8Pv744xbb77rrLu6///5klZYyCgURSYry8nJqamoYN24cNTU1VFRUcPfdd1NRUcF7770XbL/xxhvbve/moZCobFnOGqChoSEln6NQEJFO27RpEwsXLqRHjx5UVlaSm5t70Ou5ubk8++yzdO/enYULF1JbW9uu/d9yyy28++67FBUVMWvWLAD27t3L9OnTOfnkk7n66quDm+rk5+cze/ZszjzzTObPn8+7777LlClTGD9+PGeddRZvv/02APPnz6ewsJAxY8YctFrpli1bmDJlCkOHDg2WygB46qmnGDVqFIWFhdx8882t1nn33XczfPhwzj//fNavX99qm6KiouBPr169ePnll/n000/56le/yqmnnsrYsWOprKwEIj2Xyy+/nEsvvZQLL7wQd2fWrFkUFhYyatQonn766Xb9PSbE3TPqz/jx472j4BmHZzr8fpGuat26dW2+/uCDDzrgZWVlbbYrKytzwOfMmdOuz3/vvfd85MiRwfMXX3zRjznmGK+trfUDBw746aef7kuXLnV39xNPPNF//OMfB23PPfdc37Bhg7u7v/baaz558mR3dy8sLPS6ujp3d9+5c6e7uz/++ONeUFDgu3bt8n379vngwYN906ZNvnnzZs/Ly/Nt27Z5fX29T5482RcuXBh83vbt2726utoLCwv9008/9d27d/tJJ53k99133yGPqaqqys8880z/7LPP/NZbb/Unn3wyqGXo0KG+d+9ef/zxx33QoEG+Y8cOd3evqKjw888/3xsaGnzr1q2el5fnW7ZsabHv1n5eQLUn8DtWE80i0mlNt8YcPnx4m+2GDRsGwM6dOzv9mRMmTAh6JEVFRbz//vuceeaZAFx55ZVApDexbNkyLr/8n0vb/OMf/wBg4sSJXHPNNVxxxRV86UtfCl4/77zzOPbYYwEYMWIEH3zwATt27OCcc85hwIABAFx99dUsWbKEyy67LHjf0qVLmTZtGkceeSQAJSUlh6z9nXfeYdasWfzlL3+hR48eLF68mKqqqmAOYv/+/WzatAmACy64gOOOOw6AV155hZkzZ5KTk8Pxxx/P2WefzfLly9v8rPYKNRTMbArwn0AO8Ct3v6fZ658DfgOMB3YAV7r7+2HWJCLJ16dPH4BDDpk0aVqBtG/fvp3+zM997nPB45ycnIPG3JsWrGtsbKRPnz6sWrWqxfsffvhhXn/9dZ577jmKioqCNq3t1xNcIy6R+zd8+umnXHHFFfzyl7/kC1/4AhAZsVmwYEGLUG2++F6idXRGaHMKZpYDzAW+CIwAZprZiGbNrgN2uvv/An4G/Disei6+eGlY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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from sklearn.metrics import roc_curve\n",
    "fpr, tpr, thresholds = roc_curve(y_test, svc.decision_function(X_test))\n",
    "\n",
    "plt.plot(fpr, tpr, label=\"ROC Curve\")\n",
    "plt.xlabel(\"FPR\")\n",
    "plt.ylabel(\"TPR (recall)\")\n",
    "# find threshold closest to zero\n",
    "close_zero = np.argmin(np.abs(thresholds))\n",
    "plt.plot(fpr[close_zero], tpr[close_zero], 'o', markersize=10,\n",
    "         label=\"threshold zero\", fillstyle=\"none\", c='k', mew=2)\n",
    "plt.legend(loc=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fcb180dba20>"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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zojE+SZA62JyPC0tzX+KZr9+/di/fz+7d+/ms88+o3Xr1nTu3Jnly5ezfPly+vXrR//+/fn888/Zvn37OduJjo7mzTffJCsrix49ejBt2jRmzZoFwC233ML777/PN998w+LFixk7dizRDXDe0noKxoShYL/Rh1rpnMKxY8e45ZZbmDdvHlOnTqVPnz6sLC0+6bNz504uvPBCWrRoQZ8+fVi3bh3JycmVbr+ydjExMZSUlABOEjp79qx/XfPmzc9pO3bsWLKysti7dy933HGH/z0PPfQQ9957b6UxiAhpaWmkpaVxww03cNdddzFr1iyaNm3K8OHDyc7OZuHChTz99NMAJCQksGvXLo4fP06LFi0q3XZ9YD0FY0zItWzZkmeeeYYnn3ySwsJC7rzzTt5//33+/e9/A06PYurUqfziF78AYPr06fz6179m27ZtAJSUlPDUU0+V225l7eLi4li3bh0AOTk5FBYWnje+O+64g4ULF5KVlcXYsWMBuOmmm3j55Zc5ceIEAF9//TX79+8/5327d+/mk08+8S+vX7+eLl26+JczMzN56qmn2LdvH1deeSUAzZo1Y/LkyUydOtWfqPbs2cPf/va3oH6XdS3iksKBg2e8DsGYiNCvXz+Sk5NZuHAhTZs2JScnhzlz5tCzZ0+SkpK44oormDJlCgB9+/bld7/7HZmZmfTq1YvExET27NlTbpuVtbv77rt59913SUtLY9WqVeV6B4H69OnD8ePHueyyy7jkkksAuPHGGxk/fjxXXXUVSUlJjB07ttwZQoWFhfz85z/n8ssvJyUlhUWLFvG///u//vU33ngju3fvZty4cecMi82ZM4f27dvTu3dvEhMTGT16NO3bt6/5L9dFogHnCTcEqampura0kF0N5N90J52afcvEs3czf9mIEEZmjLe2bNlCr169vA7D1AMV/S2IyDpVTa3qvRHXUyg1f36a1yEYY0y9E7FJwRhjTHmuJgURGS4iW0UkT0QerGD9T0Vks4hsEJG3RaRLRdsxxhhTN1xLCiISDcwDbgZ6A5ki0rtMs0+BVFXtC2QBc92KxxhjTNXc7CmkAXmqulNVzwILgVGBDVR1haqWFgv5GIh1MR5jjDFVcDMpXAbkBywX+F47n8lAhWUDReQeEVkrImsPHDhQ84hUaRxdu4JYxhgTztxMChVdu17h+a8i8t9AKvBERetV9QVVTVXV1Fqd27t7Nx0an+HgmcbObTiNMSEVCaWz4+Li/KWzhwwZwldffeVfV7r/pT9ffvllncYWCm4mhQKgU8ByLLC7bCMRuR74FZCuqu5eWfbppwD860BHu5eCMS4I99LZpVasWMGGDRsYOnQoc+bM8b9euv+lP3FxcSH5vLrkZlJYA3QXkXgRuQC4A8gNbCAi/YA/4iSE/RVsI7R8N9h5a/8lrn+UMZHuqquu4uuvvwZgwYIFDBo0iBtvvBFwSj8899xzPPbYYwDMnTuXX/3qV1x++eWAU8eotIppoMraTZo0iaysLH/bCy+8EIB33nmHYcOGMX78eJKSknjggQf8yQhg1qxZ/Pa3vwXgiSee4IorrqBv377MnDmzWvsYLlwriKeqRSIyBXgLiAZeVtVNIvIITl3vXJzhoguBJb5LwneparpbMXHkCACbvmnp2kcYUy9kZLiz3ezsoJqFa+nsst58801Gjx7tXy6tEgsQHx9PdpC/r/rE1Sqpqvo68HqZ1x4OeH69m59/Pg2rsIcxDUfpQfHLL79kwIAB9b509oEDB/yls5955hl/6WyAEydOsH379gqTwrBhw9i3bx8dOnSocPioIbPS2caEI4++oUZC6Wxw5hSaN2/OpEmTePjhhyus6NpQRVaZC19J3G+LLRca46ZwLZ0dqGnTpvzud7/jL3/5C4cPH67W76c+i5ykcOoU7NvHmeIotp+o/ze6MKahC8fS2WVdcsklZGZm+s+yCgeRUzr78GGYPJndp5py2VsZnt2Zyhi3WOlsU8pKZxtjjAmJiEwKI0Z09DoEY4yplyJnxvXYMQCOF8Ww7M1rPA7GGGPqp8jpKfjqk2z4ppXHgRhjTP0VOT2FM05ZpcNnG3sciDH1w65du8jNzeXo0aO0atWKUaNG0alTp6rfaMJa5CQFYwwAe/fuZcqUKWRnZ/sv9gL4yU9+QkZGBs899xwdO9q8W6SKnOGjBnbqrTFu2Lt3L4MGDWLp0qVER0czZswYfvnLXzJmzBiioqJYunQpgwYNYt++fdXe9tGjR88pNPfOO+9wyy23hDJ8AF555RX/9Q3BiouL4+DBg+VenzVrFk8++WSoQquWRx99lD59+tC3b19SUlJYtWoVs2bN4qGHHjqn3fr16/2nl544cYJ7772Xbt260adPHwYPHsyqVatCGlfk9BR8VxweLrzA40CM8c6UKVPYuXMn/fv3Jycnh9jY7252WFBQwKhRo/jkk0+47777zqk4GozSpFBRddPKFBcXEx0mpeyLioqIian6sPrRRx/xz3/+k08++YTGjRtz8OBBzp49S2ZmJjfffDO/+c1v/G0XLlzI+PHjAfjhD39IfHw827dvJyoqip07d7Jly5aQ7kPk9BTynZvAbThmE80mMu3atYvs7GwaNWpULiEAxMbG8o9//IOYmBiys7PJz88/z5Yq9uCDD7Jjxw5SUlKYPn064HyzHTt2LJdffjl33nmn/6Y6cXFxPPLII1x99dUsWbKEHTsPegDTAAAQGElEQVR2MHz4cAYMGMA111zD559/DsCSJUtITEwkOTn5nMJ0u3fvZvjw4XTv3t1fKgPg1VdfJSkpicTERB544IEK43z00Ufp2bMn119/PVu3bq2wTeCNcpo2bcq7777LyZMn+cEPfsAVV1xBv379yMnJAZyey+23386tt97KjTfeiKoyffp0EhMTSUpKYtGiReW2v2fPHtq1a0fjxs4cZ7t27bj00kvp2bMnrVq1Oufb/+LFi7njjjvYsWMHq1atYs6cOURFOYfurl27MnLkyOD+gYKlqg3qZ8CAAVojs2erjh6tIy5+umbvN6ae27x5c6Xrn332WQV0zJgxlbYbM2aMAvrcc89V6/O/+OIL7dOnj395xYoVetFFF2l+fr4WFxfrlVdeqe+9956qqnbp0kUff/xxf9trr71Wt23bpqqqH3/8sQ4bNkxVVRMTE7WgoEBVVY8cOaKqqn/+8581Pj5ejx49qqdOndLOnTvrrl279Ouvv9ZOnTrp/v37tbCwUIcNG6bZ2dn+zztw4ICuXbtWExMT9eTJk3rs2DHt1q2bPvHEE+fdp9zcXL366qv17Nmz+tBDD+lf//pXfyzdu3fXEydO6J///Ge97LLL9NChQ6qqmpWVpddff70WFRXp3r17tVOnTrp79+5ztnv8+HFNTk7W7t27649+9CN95513/Ovmzp2r999/v6qqfvTRR5qamqqqqjk5OTp69Oig/i0q+lvAuWVBlcfYyOkpGBPhSm+N2bNnz0rb9ejRA4AjvvuP1EZaWhqxsbFERUWVuz3luHHjAKc38eGHH3L77beTkpLCvffe669nNGjQICZNmsSLL754zl3TrrvuOlq2bEmTJk3o3bs3X331FWvWrGHo0KG0b9+emJgY7rzzznKVWd977z0yMjJo1qwZF110Eenp5799y/bt25k+fTqLFi2iUaNGLF++nMcee4yUlBSGDh3K6dOn2bVrFwA33HADbdq0AeD9998nMzOT6OhoLr74YoYMGcKaNWvO2faFF17IunXreOGFF2jfvj3jxo3jlVdeAZxifVlZWZSUlLBw4UIyMzNr9suvociZUzAmwrVq5Qydnm/IpFRpBdLWIbiPeenwCDj3Ly4qKvIvlxasKykpoVWrVhXeh+D5559n1apVLFu2jJSUFH+birarQZ5MEsz9G06ePMn3vvc9XnzxRS699FLAGVVZunRpuaRatvhesHFER0czdOhQhg4dSlJSEvPnz2fSpEl06tSJuLg43n33XZYuXcpHH30EOEX8PvvsM0pKSvzDR26wnoIxESI9PZ2oqChyc3MpKCiosE1+fj45OTlERUVV+i26Ii1atKiyqmhFLrroIuLj41myZAngHFQ/8906d8eOHQwcOJBHHnmEdu3aVTrPMXDgQN59910OHjxIcXExr776KkOGDDmnzeDBg8nOzubUqVMcP36c1157rcJt3XXXXdx1111cc8131Q9uuukmnn32Wf9B/1PfPd/LGjx4MIsWLaK4uJgDBw6wcuVK0tLSzmmzdetWtm/f7l9ev349Xbp08S9nZmYybdo0unXr5p/76datG6mpqcycOdMfw/bt2/1zG6FiScGYCNG5c2cyMjIoLCxk1KhR5Q6w+fn5jB49mqKiIjIyMqp9IVvbtm0ZNGgQiYmJ/onmYP3973/npZdeIjk5mT59+vgPdNOnT/dPHA8ePLjSm/Bccskl/OY3v2HYsGEkJyfTv39/Ro0adU6b/v37M27cOFJSUhgzZsw5B/1SX331FVlZWbz88sv+yea1a9cyY8YMCgsL6du3L4mJicyYMaPCODIyMujbty/Jyclce+21zJ07t9x1HydOnGDixIn07t2bvn37snnzZmbNmuVff/vtt7Np0yb/DYBK/elPf2Lv3r0kJCSQlJTE3Xff7e/JhErklM6eMwfWrWPkR0NYtvf+0AdmjMeCKZ1dep3Czp07iYmJYdSoUfTo0YNt27aRk5NDUVERXbt25cMPP+Tiiy+uo8hNqNWmdLbNKRgTQTp27MgHH3zgv6J56dKl/nVRUVGMGTOGefPmWUKIYJYUjIkwHTt2JCsri/z8fHJzczly5AitW7cmPT3dah8ZSwrGRKpOnTpx3333eR2GqWdsotkYY4yf9RSMiVBFRUU899xzgFMTKZiaPSb82V+BMRFqwYIFTJs2DYA2bdowYcIEjyMy9YENHxkTgYqKipg9e7Z/efbs2edcbVwT4VQ6+8yZM4wbN46EhAQGDhx4TnmOsttNSkoiJSWF1NSKz/acNWsWl112GSkpKfTu3ZtXX33Vv27SpEnEx8f7r4d45plnqrVfbrCkYEwEWrBgAXl5eSQkJJCQkEBeXh4LFiyo1TbLJoVgBdY0qi9eeuklWrduTV5eHtOmTTtvxVWAFStWsH79eiq7fmratGmsX7+enJwc7r33XgoLC/3rnnjiCdavX8/69euZOnVqSPejJiwpGBNhAnsJM2bM8F+ZW9veQjiVzs7JyWHixIkAjB07lrfffjvomkaV6d69O82aNQtJsUHXBFNKtT79WOlsYypWVensUvPnz1dAExIStLCwUAsLCzUhIUEBnT9/fo0/P5xKZ/fp00fz8/P9y127dtUDBw6UaxcXF6f9+vXT/v376x//+McKfy8zZ870f8a6dev06quv9q+bOHGixsXFaXJysiYnJ+uGDRuq+jUHxUpnG2OCUraXEBMTQ0xMTMh6C2U11NLZWkGvoKLqqh988AGffPIJb7zxBvPmzSv3eaWefvppevbsycCBA8+pcQTnDh8lJSVV+P665GpSEJHhIrJVRPJE5MEK1jcWkUW+9atEJM7NeIyJdIFzCaW3eAQYP358yOYWAlW3dHbpT+ktJp9//nnmzJlDfn4+KSkpHDp06LzbrehAXpFgSmfHxsb6CwYWFRVx7Ngx//0SApUWo+vQoQMZGRmsXr26wu1NmzaNrVu3smjRIiZMmMDp06eDitULriUFEYkG5gE3A72BTBHpXabZZOCIqiYATwOPuxXPmjWH3dq0MQ1CRb2EUqHoLYRT6ez09HTmz58PQFZWFtdee225ZHLy5En//p48eZLly5eTmJhY6b7edtttpKam+rddH7nZU0gD8lR1p6qeBRYCo8q0GQWU/naygOskmDReA/v3nwHgitTa3zjEmIbofL2EUrXtLYRL6WyAyZMnc+jQIRISEnjqqad47LHHAGeCe8SIEQDs27ePq6++muTkZNLS0hg5ciTDhw+vcl8ffvhhnnrqKUpKSoL63dQ110pni8hYYLiq/tC3/H1goKpOCWiz0demwLe8w9em/AnFPjUtnb3sqvsY2XE3/OpXcJ7ziY1pyCornV1UVESvXr3Iy8sLalsJCQls2bLFrnJuoGpTOtvNnkJF3/jLZqBg2iAi94jIWhFZe+DAgRoF801RIw6caQz2R24iUGkvIVihnlswDYebR8gCILAObyyw+zxtCkQkBmgJlBv8V9UXgBfA6SnUJJjMNb+ryduMCQsTJkywMhYmKG72FNYA3UUkXkQuAO4Acsu0yQUm+p6PBf6fujWeZYwxpkqu9RRUtUhEpgBvAdHAy6q6SUQewbmIIhd4CfiriOTh9BDuOP8WjTFVUdWgTrk04au236tdHWBX1deB18u89nDA89PA7W7GYEykaNKkCYcOHaJt27aWGCKUqnLo0CGaNGlS423YrKsxYSI2NpaCggJqejKGCQ9NmjQhNja2xu+3pGBMmGjUqBHx8fFeh2EaOKt9ZIwxxs+SgjHGGD9LCsYYY/xcK3PhFhE5AHxVw7e3A85bQiNM2T5HBtvnyFCbfe6iqu2ratTgkkJtiMjaYGp/hBPb58hg+xwZ6mKfbfjIGGOMnyUFY4wxfpGWFF7wOgAP2D5HBtvnyOD6PkfUnIIxxpjKRVpPwRhjTCXCMimIyHAR2SoieSLyYAXrG4vIIt/6VSISV/dRhlYQ+/xTEdksIhtE5G0R6eJFnKFU1T4HtBsrIioiDf5MlWD2WUS+5/u33iQiDf5OOUH8bXcWkRUi8qnv73uEF3GGioi8LCL7fXemrGi9iMgzvt/HBhHpH9IAVDWsfnDKdO8AugIXAJ8Bvcu0+R/ged/zO4BFXsddB/s8DGjme/6jSNhnX7sWwErgYyDV67jr4N+5O/Ap0Nq33MHruOtgn18AfuR73hv40uu4a7nPg4H+wMbzrB8BvIFz58orgVWh/Pxw7CmkAXmqulNVzwILgVFl2owC5vueZwHXScOuNVzlPqvqClX91rf4Mc6d8BqyYP6dAWYDc4HTdRmcS4LZ57uBeap6BEBV99dxjKEWzD4rcJHveUvK3+GxQVHVlVRwB8oAo4C/qONjoJWIXBKqzw/HpHAZkB+wXOB7rcI2qloEHAPa1kl07ghmnwNNxvmm0ZBVuc8i0g/opKr/rMvAXBTMv3MPoIeIfCAiH4vI8DqLzh3B7PMs4L9FpADn/i0/rpvQPFPd/+/VEo6lsyv6xl/2FKtg2jQkQe+PiPw3kAoMcTUi91W6zyISBTwNTKqrgOpAMP/OMThDSENxeoPviUiiqh51OTa3BLPPmcArqvpbEbkK526Oiapa4n54nnD1+BWOPYUCoFPAcizlu5P+NiISg9PlrKy7Vt8Fs8+IyPXAr4B0VT1TR7G5pap9bgEkAu+IyJc4Y6+5DXyyOdi/7RxVLVTVL4CtOEmioQpmnycDiwFU9SOgCU6NoHAV1P/3mgrHpLAG6C4i8SJyAc5Ecm6ZNrnARN/zscD/U98MTgNV5T77hlL+iJMQGvo4M1Sxz6p6TFXbqWqcqsbhzKOkq+pab8INiWD+tv+Bc1IBItIOZzhpZ51GGVrB7PMu4DoAEemFkxTC+fZzucAE31lIVwLHVHVPqDYedsNHqlokIlOAt3DOXHhZVTeJyCPAWlXNBV7C6WLm4fQQ7vAu4toLcp+fAC4Elvjm1HeparpnQddSkPscVoLc57eAG0VkM1AMTFfVQ95FXTtB7vPPgBdFZBrOMMqkhvwlT0RexRn+a+ebJ5kJNAJQ1edx5k1GAHnAt8BdIf38Bvy7M8YYE2LhOHxkjDGmhiwpGGOM8bOkYIwxxs+SgjHGGD9LCsYYY/wsKRgTJBEpFpH1AT9xIjJURI75KnRuEZGZvraBr38uIk96Hb8xwQi76xSMcdEpVU0JfMFXdv09Vb1FRJoD60WktNZS6etNgU9FJFtVP6jbkI2pHuspGBMiqnoSWAd0K/P6KWA9ISxaZoxbLCkYE7ymAUNH2WVXikhbnBpLm8q83hqn/tDKugnTmJqz4SNjgldu+MjnGhH5FCgBHvOVYRjqe30D0NP3+t46jNWYGrGkYEztvaeqt5zvdRHpAbzvm1NYX9fBGVMdNnxkjMtUdRvwG+ABr2MxpiqWFIypG88Dg0Uk3utAjKmMVUk1xhjjZz0FY4wxfpYUjDHG+FlSMMYY42dJwRhjjJ8lBWOMMX6WFIwxxvhZUjDGGONnScEYY4zf/wfljVq/o0YRmAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fpr_rf, tpr_rf, thresholds_rf = roc_curve(y_test, rf.predict_proba(X_test)[:, 1])\n",
    "\n",
    "plt.plot(fpr, tpr, label=\"ROC Curve SVC\")\n",
    "plt.plot(fpr_rf, tpr_rf, label=\"ROC Curve RF\")\n",
    "\n",
    "plt.xlabel(\"FPR\")\n",
    "plt.ylabel(\"TPR (recall)\")\n",
    "plt.plot(fpr[close_zero], tpr[close_zero], 'o', markersize=10,\n",
    "         label=\"threshold zero SVC\", fillstyle=\"none\", c='k', mew=2)\n",
    "close_default_rf = np.argmin(np.abs(thresholds_rf - 0.5))\n",
    "plt.plot(fpr_rf[close_default_rf], tpr[close_default_rf], '^', markersize=10,\n",
    "         label=\"threshold 0.5 RF\", fillstyle=\"none\", c='k', mew=2)\n",
    "\n",
    "plt.legend(loc=4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "AUC for Random Forest: 0.937\n",
      "AUC for SVC: 0.916\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import roc_auc_score\n",
    "rf_auc = roc_auc_score(y_test, rf.predict_proba(X_test)[:, 1])\n",
    "svc_auc = roc_auc_score(y_test, svc.decision_function(X_test))\n",
    "print(\"AUC for Random Forest: {:.3f}\".format(rf_auc))\n",
    "print(\"AUC for SVC: {:.3f}\".format(svc_auc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "gamma = 1.00  accuracy = 0.90  AUC = 0.50\n",
      "gamma = 0.05  accuracy = 0.90  AUC = 1.00\n",
      "gamma = 0.01  accuracy = 0.90  AUC = 1.00\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7fcb17f67e48>"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "y = digits.target == 9\n",
    "\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    digits.data, y, random_state=0)\n",
    "\n",
    "plt.figure()\n",
    "\n",
    "for gamma in [1, 0.05, 0.01]:\n",
    "    svc = SVC(gamma=gamma).fit(X_train, y_train)\n",
    "    accuracy = svc.score(X_test, y_test)\n",
    "    auc = roc_auc_score(y_test, svc.decision_function(X_test))\n",
    "    fpr, tpr, _ = roc_curve(y_test , svc.decision_function(X_test))\n",
    "    print(\"gamma = {:.2f}  accuracy = {:.2f}  AUC = {:.2f}\".format(\n",
    "          gamma, accuracy, auc))\n",
    "    plt.plot(fpr, tpr, label=\"gamma={:.3f}\".format(gamma))\n",
    "plt.xlabel(\"FPR\")\n",
    "plt.ylabel(\"TPR\")\n",
    "plt.xlim(-0.01, 1)\n",
    "plt.ylim(0, 1.02)\n",
    "plt.legend(loc=\"best\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Metrics for Multiclass Classification"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy: 0.953\n",
      "Confusion matrix:\n",
      "[[37  0  0  0  0  0  0  0  0  0]\n",
      " [ 0 39  0  0  0  0  2  0  2  0]\n",
      " [ 0  0 41  3  0  0  0  0  0  0]\n",
      " [ 0  0  1 43  0  0  0  0  0  1]\n",
      " [ 0  0  0  0 38  0  0  0  0  0]\n",
      " [ 0  1  0  0  0 47  0  0  0  0]\n",
      " [ 0  0  0  0  0  0 52  0  0  0]\n",
      " [ 0  1  0  1  1  0  0 45  0  0]\n",
      " [ 0  3  1  0  0  0  0  0 43  1]\n",
      " [ 0  0  0  1  0  1  0  0  1 44]]\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics import accuracy_score\n",
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    digits.data, digits.target, random_state=0)\n",
    "lr = LogisticRegression().fit(X_train, y_train)\n",
    "pred = lr.predict(X_test)\n",
    "print(\"Accuracy: {:.3f}\".format(accuracy_score(y_test, pred)))\n",
    "print(\"Confusion matrix:\\n{}\".format(confusion_matrix(y_test, pred)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "hide_input": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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Iuow/DJowuTVJS76IUjNrl27snfvXtasWVNk/pgxY+jRowd9+vShVq1a3HTTTXHpg4XBFouIpAFXAG8Wt1yTIAzWBWHy6pJkD9pt06YN3bt3Z8GCBYwfP54OHTrwxBNPUPBH6siRI0ybNo2LL744KfyWhS6UzR7D5cAKVf06UaF27dqxefNmtm3bxpEjR3j99de54oorArAYPGHy6hIX/RCk5tixY+nUqROZmZncfvvtLFmyhCFDhlD4j1SPHj3YtGlTUvgtC10om8LQlxIOI06W1NRUJk6cSM+ePbngggu45ppraN68ecK6/fv3JyMjg40bN9KgQQNeeOGFpPUKbvy60AQ3/eCybwsYN24c77//Ph988AGnnXYaTz31VNxarvy67AfXYbBVgC+BRqr6bWntXYTB2rBrd7gadu0CG3btkSxhsIeA011uwzCM4AndnY+GYbjHCoNhGBFYYTAMIwIrDIZhRGCFwTCMCMJzvSlODh065ES3SpUqgWuG6fJf2HB1WfFf/uVfnOiuXLnSiW6s2B6DYRgRWGEwDCMCKwyGYURghcEwjAisMBiGEYEVBsMwIghdYXCRinv48GG6du1Kx44dad++PY888kggumFLnw6Tbli8pqSkMHXqVCZOnAjAiBEjmDZtGtOnT+eJJ56gcuXKcWu7TPZ2WhhE5I8islZE1ojIayLyi0T0jh07xq233soHH3zAunXreO2111i3bl3CPitVqsS7777L4sWLWbRoEfPmzeOTTz5JWPc///M/ee+99xLWKYyrPgiTbpi89u/fn23bth1/P3r0aK6++mp++9vfsnv3bq677rq4tV18vwpwVhhE5BzgD0BbVW0BVMDLfowbV6m4IkK1atUAyMvLIy8vL5DsvDClT4dJNyxe69atS0ZGBtOnTz8+7+DBg8dfV6pUqdjcxlhxlewN7g8lUoHKIpIKVAG+SkTMZSrusWPH6NSpE40bN6Zr1660bVtqlkW5ELbE4TCkRLvSHTp0KOPGjYtInx45ciTZ2dk0bNiQKVOmxK3vEpfPldgJjAW2A7uAb1V1zontkiUlukKFCixatIh169axYsWKQHZNXRC2xOFkT4l2pdu5c2f27dtX7Pfovvvuo1u3bmzdupVevXrFpe8al4cSpwFXAg2BekBVEel/YrtkS4muVasWnTp1Yt68eYHqBkXYEoeTPSXalW6rVq3o2rUrs2bNYsyYMaSnp/Poo48eX56fn8/s2bPJyspK2LcLXB5KZAHbVHWPquYBbwGXJiLoKhU3NzeX/fv3A/DDDz+QnZ1N06ZNE9Z1QdgSh5M9JdqV7vjx48nKyqJXr17cddddLFu2jGHDhhU5VMnMzCxyYjKZcDmcbztwiR8I+wPe06gSSnotnIp77NgxBg4cGEgq7u7duxk8eDD5+fnk5+fTp0+fQHbx+vfvz4IFC8jNzaVBgwbcf//9DBw4MCFNV30QJt0weS2MiPDwww8fP9G9adMmRo4cGbeei+/Xca+OU6JHAP8BHAV16V2xAAAJwUlEQVRWAoNU9ceS2rtIif7uu+8C1SvAhl0bEL5h1xUrVkyKlOgHgAdcbsMwjOAJ3Z2PhmG4xwqDYRgRWGEwDCMCKwyGYURghcEwjAhO+etjNWrUKG8LMROmB/BC+Py6wNVlxRYtWjjRjRXbYzAMIwIrDIZhRGCFwTCMCKwwGIYRgRUGwzAisMJgGEYEoSsMYUkHdqUJ4UqfDpNXV7pB90FKSgpvvfUWkyZNKjJ/+PDhLF++PJhtBKJSAiJyu58QvVZE7khUL0zpwK68QrjSp8PkNSx9MGDAALZu3VpkXosWLahevXpg23AZ7dYCuBFIBy4GeotIk0Q0w5IO7NIrhCt9Okxew9AHdevWJTMzkzfffPP4vJSUFO666y7Gjh0byDbA7R7DBcDHqnpIVY8CC4A+iQiGJR3YlaZLwuQ3TN+DoLnnnnsYO3ZskeDafv36MX/+fEoLUz4ZXBaGNUBnETndj3f7NXDuiY2SISU6TEnGrgiT3zB9D4KkS5cu7N27l7Vr1x6fd+aZZ9KrVy/+8pe/BLotZzelq+p6EXkcmAscAFbjRbyd2G4yMBm8aLdommFIB3ap6ZIw+Q3T9yBIWrduTbdu3cjMzCQtLY1q1arx7rvvcuTIEebM8Z7MULlyZWbPnk3Pnj0T2pbTk4+q+ryqtlbVzsA+YHMiemFIB3bt1RVh8hum70GQPPnkk3Tp0oXu3bszZMgQli5dSvv27cnIyKB79+50796dH374IeGiAO6vSpzp/3se8G/Aa4noFU7xveCCC7jmmmsCTwcOSteVV/DSgTMyMti4cSMNGjTghRdeSFjTld8weQ1TH7jGdUr0QuB0IA+4U1U/jNbeRUp0mAjbMOaw+XWBqz5wNex648aNSZESneFS3zAMN4TuzkfDMNxjhcEwjAisMBiGEYEVBsMwIrDCYBhGBE4vV54sIrIH+CKGpmcAuQ4smG64vIZNNxm8/lJV65TWKKkKQ6yISE4s12JNNzk0TdedpitdO5QwDCMCKwyGYUQQ1sIw2XSd6YbJa9h0Q+M1lOcYDMNwS1j3GAzDcIgVBsMwIghdYRCRXiKyUUT+ISJ3B6T5goh8IyJrgtDzNc8Vkb+JyHo/Jfv2gHR/ISLLRGS1rzsiCN1C+hVEZKWIBBZrLCKfi8hnIrJKRAIZVy8itURkmohs8Pu4QwCazXyPBdN3QaSb+9p/9P+/1ojIayLyi4B0A01iP46qhmYCKgBbgEZAGl5c3IUB6HYGWgNrAvR6NtDaf10d2BSQVwGq+a8rAkuBSwL0fScwBXgvQM3PgTMC/i68DAzyX6cBtRx813bj3RCUqNY5wDagsv9+KnBDALot8LJVq+BFKMwDmgTx+cO2x5AO/ENVt6rqEeB14MpERVX1I7zoucBQ1V2qusJ//T2wHu8LkqiuquoB/21FfwrkDLKI1Af+FXguCD1XiEgNvGL+PICqHlHV/QFvpjuwRVVjuRM3FlKByiKSivdD/ioAzcCT2AsIW2E4B/iy0PsdBPBjc42INABa4f11D0KvgoisAr4B5qpqILrAn4ChQH5AegUoMEdElovITQHoNQL2AC/6hz3PiUjVAHQLcy0JRhEWoKo7gbHAdmAX8K2qzglAOqYk9ngIW2EoLss7qa+3ikg1YDpwh6p+F4Smqh5T1ZZAfSDdf7hPQohIb+AbVQ3mGWdF6aiqrYHLgVtFpHOCeql4h37PqGor4CAQyPkmABFJA64A3iytbYx6p+Ht2TYE6gFVRaR/orqquh4oSGKfRQlJ7PEQtsKwg6IVsT7B7JI5QUQq4hWFV1X1raD1/d3nbKBXAHIdgStE5HO8Q7RuIhLIwwpU9Sv/32+AGXiHhImwA9hRaE9pGl6hCIrLgRWq+nVAelnANlXdo6p5wFvApUEIa8BJ7AWErTB8AjQRkYZ+Vb8WeKecPRWLeE8qeR5Yr6pPBqhbR0Rq+a8r433pNiSqq6rDVLW+qjbA69f5qprwXzURqSoi1QteA5fh7QIn4nU38KWINPNndQeCeTCoR18COozw2Q5cIiJV/O9Fd7xzTgkTdBJ7AeGJ4wVU9aiI/B6YjXfW+AVVXVvKaqUiIq8BXYAzRGQH8ICqPp+gbEfgeuAz/3wAwD2q+n6CumcDL4tIBbzCPlVVg31qbLDUBWb4T3RKBaao6qwAdG8DXvX/QGwF/isATfxj9R7A/wtCD0BVl4rINGAF3q7+SoK7jXm6iBQksd+qqv8MQtRuiTYMI4KwHUoYhlEGWGEwDCMCKwyGYURghcEwjAisMBiGEYEVhhAhIsf8UX9rRORN/9JavFpdCkZQisgV0Uaq+iMZb4ljGw+KyH/HOv+ENi+JyNUnsa0GQY6O/bljhSFc/KCqLVW1BXAEGFx4oXic9P+pqr6jqo9FaVILOOnCYIQXKwzhZSHQ2P9LuV5Ensa7geZcEblMRJaIyAp/z6IaHM+y2CAii/DuksOff4OITPRf1xWRGX7ew2oRuRR4DDjf31sZ47e7S0Q+EZFPC2dCiMi94uVlzAOaUQoicqOvs1pEpp+wF5QlIgtFZJM/lqNgANmYQtsO7EYk4yesMIQQf+ju5cBn/qxmwCuFBhQNB7L8gUs5wJ1+MMizwG+ADOCsEuT/B1igqhfjjT9YizdAaYu/t3KXiFwGNMEb89ASaCMinUWkDd7t1K3wCk+7GD7OW6razt/eeuB3hZY1ADLxhoJP8j/D7/BGJ7bz9W8UkYYxbMc4CUJ1S7RB5UK3Vy/EG4tRD/hCVT/2518CXAgs9m9DTgOWAL/CG8izGcAfIFXcEOhuwADwRnEC3/qjAwtzmT+t9N9XwysU1YEZqnrI30Ys41haiMgovMOVani3uxcwVVXzgc0istX/DJcBFxU6/1DT3/amGLZlxIgVhnDxgz/c+jj+j/9g4Vl4GQ19T2jXkuCGqAvwqKr+7wnbuCOObbwEXKWqq0XkBrwxKwWcqKX+tm9T1cIFpCDzwggIO5Q49fgY6CgijcEbFCQiTfFGYDYUkfP9dn1LWP9D4GZ/3QripSV9j7c3UMBsYGChcxfn+KP8PgL6iEhlf0Tlb2LwWx3Y5Q9R73fCsn8XkRTfcyNgo7/tm/32iEhTCT6k5WeP7TGcYqjqHv8v72siUsmfPVxVN4mXnjRTRHKBRXiZgSdyOzBZRH4HHANuVtUlIrLYvxz4gX+e4QJgib/HcgDor6orROQNYBXew4kXxmD5Prxkqy/wzpkULkAb8eLK6gKDVfWwiDyHd+5hhXgb3wNcFVvvGLFioysNw4jADiUMw4jACoNhGBFYYTAMIwIrDIZhRGCFwTCMCKwwGIYRgRUGwzAi+D+DEPCjh41FYAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "scores_image = mglearn.tools.heatmap(\n",
    "    confusion_matrix(y_test, pred), xlabel='Predicted label',\n",
    "    ylabel='True label', xticklabels=digits.target_names,\n",
    "    yticklabels=digits.target_names, cmap=plt.cm.gray_r, fmt=\"%d\")\n",
    "plt.title(\"Confusion matrix\")\n",
    "plt.gca().invert_yaxis()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      1.00      1.00        37\n",
      "           1       0.89      0.91      0.90        43\n",
      "           2       0.95      0.93      0.94        44\n",
      "           3       0.90      0.96      0.92        45\n",
      "           4       0.97      1.00      0.99        38\n",
      "           5       0.98      0.98      0.98        48\n",
      "           6       0.96      1.00      0.98        52\n",
      "           7       1.00      0.94      0.97        48\n",
      "           8       0.93      0.90      0.91        48\n",
      "           9       0.96      0.94      0.95        47\n",
      "\n",
      "   micro avg       0.95      0.95      0.95       450\n",
      "   macro avg       0.95      0.95      0.95       450\n",
      "weighted avg       0.95      0.95      0.95       450\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print(classification_report(y_test, pred))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Micro average f1 score: 0.953\n",
      "Macro average f1 score: 0.954\n"
     ]
    }
   ],
   "source": [
    "print(\"Micro average f1 score: {:.3f}\".format(\n",
    "    f1_score(y_test, pred, average=\"micro\")))\n",
    "print(\"Macro average f1 score: {:.3f}\".format(\n",
    "    f1_score(y_test, pred, average=\"macro\")))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Regression metrics"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Using evaluation metrics in model selection"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Default scoring: [0.9 0.9 0.9 0.9 0.9]\n",
      "Explicit accuracy scoring: [0.9 0.9 0.9 0.9 0.9]\n",
      "AUC scoring: [0.997 0.997 0.996 0.998 0.992]\n"
     ]
    }
   ],
   "source": [
    "# default scoring for classification is accuracy\n",
    "print(\"Default scoring: {}\".format(\n",
    "    cross_val_score(SVC(), digits.data, digits.target == 9, cv=5)))\n",
    "# providing scoring=\"accuracy\" doesn't change the results\n",
    "explicit_accuracy =  cross_val_score(SVC(), digits.data, digits.target == 9,\n",
    "                                     scoring=\"accuracy\", cv=5)\n",
    "print(\"Explicit accuracy scoring: {}\".format(explicit_accuracy))\n",
    "roc_auc =  cross_val_score(SVC(), digits.data, digits.target == 9,\n",
    "                           scoring=\"roc_auc\", cv=5)\n",
    "print(\"AUC scoring: {}\".format(roc_auc))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>fit_time</th>\n",
       "      <th>score_time</th>\n",
       "      <th>test_accuracy</th>\n",
       "      <th>train_accuracy</th>\n",
       "      <th>test_roc_auc</th>\n",
       "      <th>train_roc_auc</th>\n",
       "      <th>test_recall_macro</th>\n",
       "      <th>train_recall_macro</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.24</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.9</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.23</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.9</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.22</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.9</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.22</td>\n",
       "      <td>0.16</td>\n",
       "      <td>0.9</td>\n",
       "      <td>1.0</td>\n",
       "      <td>1.00</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.22</td>\n",
       "      <td>0.15</td>\n",
       "      <td>0.9</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.99</td>\n",
       "      <td>1.0</td>\n",
       "      <td>0.5</td>\n",
       "      <td>1.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   fit_time  score_time  test_accuracy  train_accuracy  test_roc_auc  \\\n",
       "0      0.24        0.15            0.9             1.0          1.00   \n",
       "1      0.23        0.16            0.9             1.0          1.00   \n",
       "2      0.22        0.15            0.9             1.0          1.00   \n",
       "3      0.22        0.16            0.9             1.0          1.00   \n",
       "4      0.22        0.15            0.9             1.0          0.99   \n",
       "\n",
       "   train_roc_auc  test_recall_macro  train_recall_macro  \n",
       "0            1.0                0.5                 1.0  \n",
       "1            1.0                0.5                 1.0  \n",
       "2            1.0                0.5                 1.0  \n",
       "3            1.0                0.5                 1.0  \n",
       "4            1.0                0.5                 1.0  "
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "res = cross_validate(SVC(), digits.data, digits.target == 9,\n",
    "                     scoring=[\"accuracy\", \"roc_auc\", \"recall_macro\"],\n",
    "                     return_train_score=True, cv=5)\n",
    "display(pd.DataFrame(res))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Grid-Search with accuracy\n",
      "Best parameters: {'gamma': 0.0001}\n",
      "Best cross-validation score (accuracy)): 0.970\n",
      "Test set AUC: 0.992\n",
      "Test set accuracy: 0.973\n"
     ]
    }
   ],
   "source": [
    "X_train, X_test, y_train, y_test = train_test_split(\n",
    "    digits.data, digits.target == 9, random_state=0)\n",
    "\n",
    "# we provide a somewhat bad grid to illustrate the point:\n",
    "param_grid = {'gamma': [0.0001, 0.01, 0.1, 1, 10]}\n",
    "# using the default scoring of accuracy:\n",
    "grid = GridSearchCV(SVC(), param_grid=param_grid)\n",
    "grid.fit(X_train, y_train)\n",
    "print(\"Grid-Search with accuracy\")\n",
    "print(\"Best parameters:\", grid.best_params_)\n",
    "print(\"Best cross-validation score (accuracy)): {:.3f}\".format(grid.best_score_))\n",
    "print(\"Test set AUC: {:.3f}\".format(\n",
    "    roc_auc_score(y_test, grid.decision_function(X_test))))\n",
    "print(\"Test set accuracy: {:.3f}\".format(grid.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      "Grid-Search with AUC\n",
      "Best parameters: {'gamma': 0.01}\n",
      "Best cross-validation score (AUC): 0.997\n",
      "Test set AUC: 1.000\n",
      "Test set accuracy: 1.000\n"
     ]
    }
   ],
   "source": [
    "# using AUC scoring instead:\n",
    "grid = GridSearchCV(SVC(), param_grid=param_grid, scoring=\"roc_auc\")\n",
    "grid.fit(X_train, y_train)\n",
    "print(\"\\nGrid-Search with AUC\")\n",
    "print(\"Best parameters:\", grid.best_params_)\n",
    "print(\"Best cross-validation score (AUC): {:.3f}\".format(grid.best_score_))\n",
    "print(\"Test set AUC: {:.3f}\".format(\n",
    "    roc_auc_score(y_test, grid.decision_function(X_test))))\n",
    "print(\"Test set accuracy: {:.3f}\".format(grid.score(X_test, y_test)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Available scorers:\n",
      "['explained_variance', 'r2', 'neg_median_absolute_error', 'neg_mean_absolute_error', 'neg_mean_squared_error', 'neg_mean_squared_log_error', 'accuracy', 'roc_auc', 'balanced_accuracy', 'average_precision', 'neg_log_loss', 'brier_score_loss', 'adjusted_rand_score', 'homogeneity_score', 'completeness_score', 'v_measure_score', 'mutual_info_score', 'adjusted_mutual_info_score', 'normalized_mutual_info_score', 'fowlkes_mallows_score', 'precision', 'precision_macro', 'precision_micro', 'precision_samples', 'precision_weighted', 'recall', 'recall_macro', 'recall_micro', 'recall_samples', 'recall_weighted', 'f1', 'f1_macro', 'f1_micro', 'f1_samples', 'f1_weighted']\n"
     ]
    }
   ],
   "source": [
    "from sklearn.metrics.scorer import SCORERS\n",
    "print(\"Available scorers:\")\n",
    "print(sorted(SCORERS.keys()))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Summary and Outlook"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda env:py37]",
   "language": "python",
   "name": "conda-env-py37-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
